这学期开设了数据结构,各种实验。
也涉及了一些之前学习中没有涉及的函数。
学习之余,写篇博客mark下。主要是c语言一些常用的字符串转换函数
atof(将字符串转换成浮点型数)
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
strtod(将字符串转换成浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII 码字符)
toupper(将小写字母转换成大写字母)
tolower(将大写字母转换成小写字母)
返回值 返回转换后的浮点型数。
附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。
范例 /* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h> #include <stdio.h> int main() { char *a = "-100.23"; char *b = "200e-2"; float c; c=atof(a) + atof(b); printf("c=%.2f", c); return 0; } //打印结果 //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> #include <stdio.h> int main() { char a[]="-100"; char b[]="456"; int c; c = atoi(a)+atoi(b); printf("c=%d",c); return 0; } //打印结果 //c=356
#include<stdlib.h> #include <stdio.h> int main() { char a[] = "1000000000"; char b[] = "234567890"; long c; c = atol(a)+atol(b); printf("c=%d",c); return 0; } //打印结果 //c=1234567890
#include<stdlib.h> #include <stdio.h> int main() { double a = 123.45; double b = -1234.56; char *ptr = NULL; int decpt, sign; gcvt(a,5,ptr); printf("a value=%s\n", ptr); ptr=gcvt(b,6,ptr); printf("b value=%s", ptr); return 0; } //打印结果 // a value=123.45 // b value=-1234.56
#include<stdlib.h> #include <stdio.h> int 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)); return 0; } // 打印结果 // a=1000000000 // b=512 // c=65535
#include<stdlib.h> #include <stdio.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(b,NULL,2)); printf("c=%d\n",strtol(c,NULL,16)); return 0; } // 打印结果 // a=1000000000 // b=512 // c=65535
#include <stdio.h> #include <ctype.h> int 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); return 0; } // 打印结果 // before toascii () : a value =217(\331) // after toascii() : a value =89(Y)
#include<ctype.h> #include <stdio.h> int 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); return 0; } // 打印结果 // before tolower() : aBcDeFgH12345;!#$ // after tolower() : abcdefgh12345;!#$
#include<ctype.h> #include <stdio.h> int 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); return 0; } // 打印结果 // before toupper() : aBcDeFgH12345;!#$ // after toupper() : ABCDEFGH12345;!#$