itoa()函数和atoi()函数[c语言中数与字符之间的转化]

示例:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     int a=100,d=999;
 6     char b[10]="1000";
 7     char c[10]="123";
 8     
 9     itoa(d,c,10);
10     printf("%d\n",atoi(b)-a);
11     printf("%s",c);
12     
13     return 0;
14 }

结果如下:

900

999

 

 

itoa()函数有3个参数:itoa(要转换的数字,要写入转换结果的目标字符串,转移数字时所用的基数)。在上例中,转换基数为10。10:十进制;2:二进制...

itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:
char str[255];
sprintf(str, "%x", 100); //将100转为16进制表示的字符串。

一、atoi()——把字符串转换成整型数


示例程序:

#include <ctype.h>
#include <stdio.h>
int atoi (char s[]);
int main(void ) {
    char s[100];
    gets(s);
    printf("integer=%d\n",atoi(s));
    return 0;
}
int atoi (char s[]) {
    int i,n,sign;
    for(i=0; isspace(s[i]); i++) //跳过空白符;
        sign=(s[i]=='-')?-1:1;
    if(s[i]=='+'||s[i]==' -')//跳过符号
        i++;
    for(n=0; isdigit(s[i]); i++)
        n=10*n+(s[i]-'0');//将数字字符转换成整形数字
    return sign *n;
}

 

二、itoa()——把一整数转换为字符串


示例程序:

 1 #include <ctype.h>
 2 #include <stdio.h>
 3 void      itoa (int n,char s[]);
 4 //atoi 函数:将s转换为整形数
 5 int main(void ) {
 6     int n;
 7     char s[100];
 8     printf("Input n:\n");
 9     scanf("%d",&n);
10     printf("the string : \n");
11     itoa (n,s);
12     return 0;
13 }
14 void itoa (int n,char s[]) {
15     int i,j,sign;
16     if((sign=n)<0)//记录符号
17         n=-n;//使n成为正数
18     i=0;
19     do {
20         s[i++]=n%10+'0';//取下一个数字
21     } while ((n/=10)>0); //删除该数字
22     if(sign<0)
23         s[i++]='-';
24     s[i]='\0';
25     for(j=i; j>=0; j--) //生成的数字是逆序的,所以要逆序输出
26         printf("%c",s[j]);
27 }

是int 转string类型的一个函数

 

itoa() 将长(整)整型值转换为字符串
ultoa() 将无符号长整型值转换为字符串

posted @ 2021-01-07 17:15  泥烟  阅读(299)  评论(0编辑  收藏  举报