atoi
#include <stdlib.h>
int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
RETURN VALUE
The converted value.
示例:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
char numstr1[10] = "123";
char numstr2[11] = " 456 " ;
char numstr3[12] = "abc123lkj";
char numstr4[14] = " -1236ok ";
char numstr5[15] = "+587ok-412";
char numstr6[16] = "01230";
char numstr7[17] = "192.168.1.106";
char numstr8[18] = "+192-168.65";
printf("numstr1 = %d.\n",atoi(numstr1));
printf("numstr2 = %d.\n",atoi(numstr2));
printf("numstr3 = %d.\n",atoi(numstr3));
printf("numstr4 = %d.\n",atoi(numstr4));
printf("numstr5 = %d.\n",atoi(numstr5));
printf("numstr6 = %d.\n",atoi(numstr6));
printf("numstr7 = %d.\n",atoi(numstr7));
printf("numstr8 = %d.\n",atoi(numstr8));
return 0;
}
输出结果如下:
numstr1 = 123.
numstr2 = 456.
numstr3 = 0.
numstr4 = -1236.
numstr5 = 587.
numstr6 = 1230.
numstr7 = 192.
numstr8 = 192.
strtoul
链接: https://www.runoob.com/cprogramming/c-function-strtoul.html.
unsigned long int strtoul(const char *str, char **endptr, int base)
功能:
strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。
参数base范围从2至36,或0。
参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。
当base值为0时会根据情况选择用哪种进制:
如果第一个字符是’0’,就判断第二字符如果是‘x’则用16进制,否则用8进制;
第一个字符不是‘0’,则用10进制。
一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(’’)结束转换,并将结果返回。
若参数endptr不为NULL,则会将遇到不符合条件而终止的nptr中的字符指针由endptr返回