
C语言将字符串转换为数字的方法有多种,包括使用标准库函数、手动解析字符串等。最常用的方法是使用atoi、atol、atof、strtol、strtoul、strtod、sscanf等函数。本文将详细介绍这些方法以及在实际应用中的一些注意事项。
一、使用atoi函数
atoi函数用于将字符串转换为整数,通常用于简单的整数转换。
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345";
int num = atoi(str);
printf("The converted number is %dn", num);
return 0;
}
优点:简单易用。
缺点:无法处理错误情况,无法转换超出int范围的值。
二、使用atol和atoll函数
atol和atoll函数分别用于将字符串转换为long和long long类型的整数。
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "123456789012345";
long num = atol(str);
printf("The converted number is %ldn", num);
return 0;
}
优点:适用于更大的整数。
缺点:无法处理错误情况,无法转换超出long或long long范围的值。
三、使用atof函数
atof函数用于将字符串转换为浮点数。
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "123.45";
double num = atof(str);
printf("The converted number is %fn", num);
return 0;
}
优点:简单易用。
缺点:无法处理错误情况,精度有限。
四、使用strtol和strtoul函数
strtol和strtoul函数用于将字符串转换为long和unsigned long类型的整数,且能处理错误情况。
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345";
char *endptr;
long num = strtol(str, &endptr, 10);
if (*endptr == '