c语言字符转换

来源:互联网 发布:年鹏外设淘宝店 编辑:程序博客网 时间:2024/06/05 00:58

一,概括
在实际应用中,我们会遇到将整型转换为字符型,或者将字符型转换为整型的时候,在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,至于其他的转换则可以利用强制类型转换以实现。