当前位置:首页 >> 数学 >>

c语言 数字与字符串之间的相互转化函数


atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol(将字符串转换成长整型数) strtoul(将字符串转换成无符号长整型数) toascii(将整型数转换成合法的 ASCII 码字符) toupper(将小写字母转换成大写字母) tolower(将大写字母转换成小写字母) atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include <stdlib.h> 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数 nptr 字符串,跳过前面的空格字符,直到遇上数 字或正负符号才开始做转换,而再遇到非数字或字符串结束时 ('\0')才结束转换,并将结果返回。参数 nptr 字符串可包含正负 号、小数点或 E(e)来表示指数部分,如 123.456 或 123e-2。 返回值 返回转换后的浮点型数。 附加说明 atof()与使用 strtod(nptr,(char**)NULL)结果相同。 范例 /* 将字符串 a 与字符串 b 转换成数字后相加*/ #include<stdlib.h> main() { char *a=”-100.23”; char *b=”200e-2”; float c; c=atof(a)+atof(b); printf(“c=%.2f\n”,c); } 执行 c=-98.23 atoi(将字符串转换成整型数) 相关函数 atof,atol,atrtod,strtol,strtoul 表头文件 #include<stdlib.h> 定义函数 int atoi(const char *nptr); 函数说明 atoi()会扫描参数 nptr 字符串,跳过前面的空格字符,直到遇上数 字或正负符号才开始做转换,而再遇到非数字或字符串结束时 ('\0')才结束转换,并将结果返回。 返回值 返回转换后的整型数。 附加说明 atoi()与使用 strtol(nptr,(char**)NULL,10);结果相同。 范例 /* 将字符串 a 与字符串 b 转换成数字后相加*/ #include<stdlib.h> mian() { char a[]=”-100”;

char b[]=”456”; int c; c=atoi(a)+atoi(b); printf(c=%d\n”,c); } 执行 c=356 atol(将字符串转换成长整型数) 相关函数 atof,atoi,strtod,strtol,strtoul 表头文件 #include<stdlib.h> 定义函数 long atol(const char *nptr); 函数说明 atol()会扫描参数 nptr 字符串,跳过前面的空格字符,直到遇上数 字或正负符号才开始做转换,而再遇到非数字或字符串结束时 ('\0')才结束转换,并将结果返回。 返回值 返回转换后的长整型数。 附加说明 atol()与使用 strtol(nptr,(char**)NULL,10);结果相同。 范例 /*将字符串 a 与字符串 b 转换成数字后相加*/ #include<stdlib.h> main() { char a[]=”1000000000”; char b[]=” 234567890”; long c; c=atol(a)+atol(b); printf(“c=%d\n”,c); } 执行 c=1234567890 gcvt(将浮点型数转换为字符串,取四舍五入) 相关函数 ecvt,fcvt,sprintf 表头文件 #include<stdlib.h> 定义函数 char *gcvt(double number,size_t ndigits,char *buf); 函数说明 gcvt()用来将参数 number 转换成 ASCII 码字符串,参数 ndigits 表示 显示的位数。gcvt()与 ecvt()和 fcvt()不同的地方在于,gcvt()所 转换后的字符串包含小数点或正负符号。若转换成功,转换后的字 符串会放在参数 buf 指针所指的空间。 返回值 返回一字符串指针,此地址即为 buf 指针。 附加说明 范例 #include<stdlib.h> main() { double a=123.45; double b=-1234.56; char *ptr; int decpt,sign; gcvt(a,5,ptr);

printf(“a value=%s\n”,ptr); ptr=gcvt(b,6,ptr); printf(“b value=%s\n”,ptr); } 执行 a value=123.45 b value=-1234.56 strtod(将字符串转换成浮点数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include<stdlib.h> 定义函数 double strtod(const char *nptr,char **endptr); 函数说明 strtod()会扫描参数 nptr 字符串,跳过前面的空格字符,直到遇上 数字或正负符号才开始做转换,到出现非数字或字符串结束时 ('\0')才结束转换,并将结果返回。若 endptr 不为 NULL,则会将遇 到不合条件而终止的 nptr 中的字符指针由 endptr 传回。参数 nptr 字 符串可包含正负号、小数点或 E(e)来表示指数部分。如 123.456 或 123e-2。 返回值 返回转换后的浮点型数。 附加说明 参考 atof()。 范例 /*将字符串 a,b,c 分别采用 10,2,16 进制转换成数字*/ #include<stdlib.h> mian() { char a[]=”1000000000”; char b[]=”1000000000”; char c[]=”ffff”; printf(“a=%d\n”,strtod(a,NULL,10)); printf(“b=%d\n”,strtod(b,NULL,2)); printf(“c=%d\n”,strtod(c,NULL,16)); } 执行 a=1000000000 b=512 c=65535 strtol(将字符串转换成长整型数) 相关函数 atof,atoi,atol,strtod,strtoul 表头文件 #include<stdlib.h> 定义函数 long int strtol(const char *nptr,char **endptr,int base); 函数说明 strtol()会将参数 nptr 字符串根据参数 base 来转换成长整型数。参 数 base 范围从 2 至 36,或 0。参数 base 代表采用的进制方式,如 base 值为 10 则采用 10 进制,若 base 值为 16 则采用 16 进制等。当 base 值为 0 时则是采用 10 进制做转换,但遇到如'0x'前置字符则会使用 16 进制 做转换。一开始 strtol()会扫描参数 nptr 字符串,跳过前面的空格 字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字 符串结束时('\0')结束转换,并将结果返回。若参数 endptr 不为 NULL,则会将遇到不合条件而终止的 nptr 中的字符指针由 endptr 返

回。 返回值 返回转换后的长整型数,否则返回 ERANGE 并将错误代码存入 errno 中。 附加说明 ERANGE 指定的转换字符串超出合法范围。 范例 /* 将字符串 a,b,c 分别采用 10,2,16 进制转换成数字*/ #include<stdlib.h> main() { char a[]=”1000000000”; char b[]=”1000000000”; char c[]=”ffff”; printf(“a=%d\n”,strtol(a,NULL,10)); printf(“b=%d\n”,strtol(b,NULL,2)); printf(“c=%d\n”,strtol(c,NULL,16)); } 执行 a=1000000000 b=512 c=65535 strtoul(将字符串转换成无符号长整型数) 相关函数 atof,atoi,atol,strtod,strtol 表头文件 #include<stdlib.h> 定义函数 unsigned long int strtoul(const char *nptr,char **endptr,int base); 函数说明 strtoul()会将参数 nptr 字符串根据参数 base 来转换成无符号的长整 型数。参数 base 范围从 2 至 36,或 0。参数 base 代表采用的进制方 式,如 base 值为 10 则采用 10 进制,若 base 值为 16 则采用 16 进制数 等。当 base 值为 0 时则是采用 10 进制做转换,但遇到如'0x'前置字符 则会使用 16 进制做转换。一开始 strtoul()会扫描参数 nptr 字符串, 跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换, 再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若 参数 endptr 不为 NULL,则会将遇到不合条件而终止的 nptr 中的字符 指针由 endptr 返回。 返回值 返回转换后的长整型数,否则返回 ERANGE 并将错误代码存入 errno 中。 附加说明 ERANGE 指定的转换字符串超出合法范围。 范例 参考 strtol() toascii(将整型数转换成合法的 ASCII 码字符) 相关函数 isascii,toupper,tolower 表头文件 #include<ctype.h> 定义函数 int toascii(int c) 函数说明 toascii()会将参数 c 转换成 7 位的 unsigned char 值,第八位则会被 清除,此字符即会被转成 ASCII 码字符。 返回值 将转换成功的 ASCII 码字符值返回。 范例 #include<stdlib.h>

main() { int a=217; char b; printf(“before toascii () : a value =%d(%c)\n”,a,a); b=toascii(a); printf(“after toascii() : a value =%d(%c)\n”,b,b); } 执行 before toascii() : a value =217() after toascii() : a value =89(Y) tolower(将大写字母转换成小写字母) 相关函数 isalpha,toupper 表头文件 #include<stdlib.h> 定义函数 int tolower(int c); 函数说明 若参数 c 为大写字母则将该对应的小写字母返回。 返回值 返回转换后的小写字母,若不须转换则将参数 c 值返回。 附加说明 范例 /* 将 s 字符串内的大写字母转换成小写字母*/ #include<ctype.h> main() { char s[]=”aBcDeFgH12345;!#$”; int i; printf(“before tolower() : %s\n”,s); for(i=0;I<sizeof(s);i++) s[i]=tolower(s[i]); printf(“after tolower() : %s\n”,s); } 执行 before tolower() : aBcDeFgH12345;!#$ after tolower() : abcdefgh12345;!#$ toupper(将小写字母转换成大写字母) 相关函数 isalpha,tolower 表头文件 #include<ctype.h> 定义函数 int toupper(int c); 函数说明 若参数 c 为小写字母则将该对映的大写字母返回。 返回值 返回转换后的大写字母,若不须转换则将参数 c 值返回。 附加说明 范例 /* 将 s 字符串内的小写字母转换成大写字母*/ #include<ctype.h> main() { char s[]=”aBcDeFgH12345;!#$”; int i; printf(“before toupper() : %s\n”,s);

for(i=0;I<sizeof(s);i++) s[i]=toupper(s[i]); printf(“after toupper() : %s\n”,s); } 执行 before toupper() : aBcDeFgH12345;!#$ after toupper() : ABCDEFGH12345;!#$ C 语言中字符串和数字的相互转换(2008-10-21 16:47:12)

C 语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等) 的数字转换为字符 串。以下是用 itoa()函数将整数转换为字符串的一个例子: # include <stdio.h> # include <stdlib.h> void main (void) { int num = 100; char str[25]; itoa(num, str, 10); printf("The number 'num' is %d and the string 'str' is %s. \n" , num, str); } itoa()函数有 3 个参数: 第一个参数是要转换的数字,第二个参数是要写入 转换结果的目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为 10。10:十进制;2:二进制... itoa 并不是一个标准的 C 函数,它是 Windows 特有的,如果要写跨平台的 程序,请用 sprintf。 是 Windows 平台下扩展的, 标准库中有 sprintf, 功能比这个更强, 用法跟 printf 类似: char str[255]; sprintf(str, "%x", 100); //将 100 转为 16 进制表示的字符串。 下列函数可以将整数转换为字符串: ---------------------------------------------------------函数名 作 用 ---------------------------------------------------------itoa() 将整型值转换为字符串 itoa() 将长整型值转换为字符串 ultoa() 将无符号长整型值转换为字符串

一 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 把一整数转换为字符串 例程序: #include <ctype.h> #include <stdio.h> void itoa (int n,char s[]); //atoi 函数:将s转换为整形数 int main(void ) { int n; char s[100];

printf("Input n:\n"); scanf("%d",&n); printf("the string : \n"); itoa (n,s); return 0; } void itoa (int n,char s[]) { int i,j,sign; if((sign=n)<0)//记录符号 n=-n;//使 n 成为正数 i=0; do{ s[i++]=n%10+'0';//取下一个数字 }while ((n/=10)>0);//删除该数字 if(sign<0) s[i++]='-'; s[i]='\0'; for(j=i;j>=0;j--)//生成的数字是逆序的,所以要逆序输出 printf("%c",s[j]); } ps:注意,有些平台不支持 itoa,其并非标准模板~~~慎用 在单片机中,常用到数字与字符的方法,在 C 中都是使用 itoa 函数,C51 也有这个函数,但是,8051 的 RAM 是很有限的,所以尽量避免使用 int 型,常 用的是 unsigned char。当需要转换成字符串时用 itoa 的话,还是有点浪费。 还是自力更生,自己写了一个,代码如下: typedef unsigned char BYTE; BYTE * ByteToStr(BYTE n) { BYTE str[4]; BYTE * pStr; pStr = str; if (n>99) { *pStr = n/100; n %= 100; *pStr += '0'; pStr ++ ; *pStr = n/10;

n %= 10; *pStr += '0'; pStr ++ ; } if (n>9) { *pStr = n/10; n %= 10; *pStr += '0'; pStr ++ ; } if (n<10) { *pStr = n + '0'; pStr ++; } *pStr = 0; return str; } 用了 5Byte 内存,不知是否精简,先用着再说!String 转 unsigned char 的要反过来先减'0'再乘,不过要检查是否小于等于 255。等写好了再放上来


相关文章:
c语言 数字与字符串之间的相互转化函数.doc
c语言 数字与字符串之间的相互转化函数 - atof(将字符串转换成浮点型数)
C语言常用数字和字符串转换函数.txt
C语言常用数字和字符串转换函数 - C语言常用数字和字符串转换函数 atoi 字
C语言字符串 数字转换函数大全.pdf
C语言字符串 数字转换函数大全 - c 语言字符串 数字转换函数大全 最近学数据结构老是做实验 常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一...
C语言各种数值类型转换函数.doc
C 语言各种数值类型转换函数 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol(...
C语言中数字转换成字符串的方法.doc
C语言中数字转换字符串的方法_IT/计算机_专业资料。char *itoa( int value,...---请注意,上述函数与 ANSI 标准是不兼容的。能将整数转换字符串而且与 ANSI...
C语言字符串和数字转换函数.doc
C语言字符串和数字转换函数 - atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整数数) strtod(将字符串转换成浮点数) ...
c语言数字转化字符串的函数及用法.doc
c语言数字转化字符串的函数及用法 - 我们常用到的有以下几种: 1、itoa 功能:把一整数转换字符串 用法:char *itoa(int value, char *string, ...
C语言字符串与整数转换的函数.doc
C语言字符串与整数转换的函数 - C 语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换字符串。 以下是用 itoa()函数将整数转换为...
C语言字符串和数字转换函数.pdf
C语言字符串和数字转换函数 - atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整数数) strtod(将字符串转换成浮点数) ...
C语言之数字转化为字符串的库函数.txt
C语言数字转化字符串的函数 - C语言数字转化字符串的函数.txt不
C语言之数字转化为字符串的库函数.txt
C语言数字转化字符串的函数 - 高考历史、文综历史专题复习【全部完成】... C语言数字转化字符串的函数_经管...型数转换字符串,转换结果不包括十...
C语言之数字转化为字符串的库函数.doc
C语言数字转化字符串的函数 - C 语言数字转化字符串的函数 发表于
C语言之数字转化为字符串的库函数.doc
C 语言数字转化字 符串的函数 发表于:昨天 13:18 | 分类:个人日记 阅读:(1) 评论:(0) 我们常用到的有以下几种: 1、Itoa 功能:把一长整形转换为...
c语言中常用字符串函数.txt
c语言中常用字符串函数_英语学习_外语学习_教育专区...将字符串转换为double型值 用 法: double strtod(...(将字符串转换成浮点型)定义函数 double atof(...
C语言中必须掌握的字符串处理函数.doc
C语言中必须掌握的字符串处理函数_计算机软件及应用_IT/计算机_专业资料。strcoll...当区域选项是“POSIX”或者“C”时,函数和 strncpy 一样。返回被转换的字符数...
C语言中各进制字符串转换成数字.doc
C 语言某个程序当中需要把文本 16 进制转换成对应的 16 进制,比如字符串"0x1a"转 换成 10 进制的 26,可以用以下函数来实现 相关函数: atof, atoi, ...
C语言字符串操作函数.pdf
C语言字符串操作函数_电脑基础知识_IT/计算机_专业资料。C语言字符串操作函数总结 1 atof()函数:将字符串转换成浮点头文件:#include <stdlib.h> 定义函数:...
C语言中常见的功能函数.doc
C 语言中常见的功能函数(应掌握的编程) 1、 两个...字母,否 则不进行转换,函数返回转换后或原来的字符...之 int inz(int n) /*计算 n 的因子之和...
C语言中把数字转换为字符串.pdf
C 语言中数字转换字符串在将各种类型的数据构造成字符串时,sprintf 的强大...sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *...
请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(....doc
请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。 例如,若输入字符串“-1234”,则函数把它...
更多相关文章: