#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char * str1 = "52";
char * str2 = "52abc";
printf("str1 = %d\n", atoi(str1));
printf("str2 = %d\n", atoi(str2));
return 0;
}
输出:
str1 = 52
str2 = 52
atoi():将输入字符串转为整数,函数会检索字符串一直到遇到第一个非数字值为止,如果无任何数字则返回0。
atof():将字符串转为float类型数值。
atol():将字符串转为long类型数值,都是类似用法。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char * str = "52abc";
char * end;
long value = strtol(str, &end, 10);
printf("value = %ld\n", value);
printf("end = %s\n", end);
return 0;
}
输出:
value = 52
end = abc
strtol(const char * nptr, char **endptr, int base):将字符串转为long类型,第一个参数为字符串地址,第二个参数为输入数字结束字符指针地址,代码中到字符a截止,因此end变为字符a所处位置的地址,参数三为进制。
strtoul()函数与strtol类似,将字符串转为无符号long类型。
strtod(const char * nptr, char **endptr):将字符串转为double类型,无第三个参数,其余一样。