Bootstrap

C:字符串转数字

#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类型,无第三个参数,其余一样。

;