1相关函数 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)结果相同。
实例 glibc/atof.c#include<stdlib.h>
注意:在输入参数-d后,好像开头只能有数字或-才能正确转换
#include <stdlib.h> int main() { char *a = "-100.23"; char *b = "200e-2"; float c; c = atof(a) + atof(b); printf("c=%.2f\n",c); return 0; }
2. atoi(将字符串转换成整型数)
相关函数 atof,atol,atrtod,strtol,strtoul#include <stdlib.h> int main() { char a[] = "-100"; char b[] = "456"; int c; c = atoi(a) + atoi(b); printf("c=%d\n", c); return 0; }
3. atol(将字符串转换成长整型数)
相关函数 atof,atoi,strtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 long atol(const char *nptr);
函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。
返回值 返回转换后的长整型数。
附加说明 atol()与使用strtol(nptr,(char**)NULL,10);结果相同。
是否有itoaltoa?
#include <stdlib.h> int main() { char a[] = "1000000000"; char b[] = "234567890"; long c; c = atol(a) + atol(b); printf("c=%d\n", c); return 0; }
4.sprintf(按照格式输出到buffer )
表头文件 #include<stdlio.h>
定义函数 int sprintf(char *str, const char *format, ...);
在linux上没有 itoa函数,这个不是标准的C库函数。sprintf可以根据个数,把数字转换成字符串,或者将字符串原封不动的拷贝输入buffer(buffer 可以为数组或指针).
int fprintf(FILE*stream, const char *format, ...);
依据format,把数据输出到文件。 Snprintf#include <stdlib.h> int main() { char *a = "This is string A!"; char buf[80]; sprintf(buf, ">>>%s<<<\n", a); printf("%s", buf); return 0; }
#include <stdlib.h> int main() { char *ptr = "123.456abc", *str; double a = strtod(ptr, &str); if(123.456 == a) puts(str); return 0; }
#include <stdlib.h> int main() { char a[] = "1000000000"; char b[] = "1000000000"; char c[] = "ffff"; printf("a=%d\n", strtol(a, NULL, 10)); printf("b=%d\n", strtol(a, NULL, 2)); printf("c=%d\n", strtol(a, NULL, 16)); return 0; }
#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()
8. tolower(将大写字母转换成小写字母)
相关函数 isalpha,toupper
表头文件 #include<stdlib.h>
定义函数 int tolower(int c);
函数说明 若参数c为大写字母则将该对应的小写字母返回。
返回值 返回转换后的小写字母,若不须转换则将参数c值返回。
附加说明
10. toupper(将小写字母转换成大写字母)
相关函数 isalpha,tolower#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); }