一,概括
在实际应用中,我们会遇到将整型转换为字符型,或者将字符型转换为整型的时候,在c语言中提供了一套接口用来实现上述要求,它们分别为:
int atoi(char * arry); //将字符串转换为整型
float atof(char * arry); //将字符串转换为float
char *itoa(int value,char *string,int radix) ;//将整型转换为字符串型
二,具体用法
1,在使用前需要相应的头文件
#include
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[]="12a1";
char b[]="10";
int c=(atoi(a)+atoi(b));
printf("c=%d\n",c);
return 0;
}
运行结果:22
解释:atoi()是将字符型转换为整型,在转换的过程中从“0~9”的数开始,遇到非“0~9”或‘\0’结束,注意若字符串开头若不为“0~9”则不会进行转换。
请看下面的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[]="12a1";
char b[]="1c2";
char c[]="ac5s";
int a1=atoi(a);
int b1=atoi(b);
int c1=atoi(c);
printf("a to int is:%d\n",a1);
printf("b to int is:%d\n",b1);
printf("c to int is:%d\n",c1);
return 0;
}
运行结果:
3,atof()用法
atof()将字符串转换为float;
请看下面的例子:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[]="12.32";
char b[]="12qs32";
char c[]="123";
char d[]="ab12.25";
float a1=atof(a);
float b1=atof(b);
float c1=atof(c);
float d1=atof(d);
printf("a to float is:%lf\n",a1);
printf("b to float is:%lf\n",b1);
printf("c to float is:%lf\n",c1);
printf("d to float is:%lf\n",d1);
return 0;
}
运行结果:
由于此处与atoi()类似,所以便不再分析。
3,itoa用法
请看函数原型:
char *itoa(int value,char *string,int radix) ;
其中value指需要转换的int型数,string指向转换后的数据,radix指定转换数字时使用的基数,10:代表十进制; 2:代表二进制;8:代表八进制
使用如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=212;
char a1[10];
char a2[10];
char a3[10];
itoa(a,a1,10);
itoa(a,a2,8);
itoa(a,a3,2);
printf("a to string(10) is:%s\n",a1);
printf("b to string(8) is:%s\n",a2);
printf("c to string(2) is:%s\n",a3);
return 0;
}
结果如下:
三,总结
上面,主要讲了c语言中的字符串转整型,整型转字符型,字符型转float,至于其他的转换则可以利用强制类型转换以实现。