C语言中如何将字符串转化为数字
时间: 2024-10-01 14:08:38 浏览: 219
在C语言中,将字符串转换成数字通常涉及到整数和浮点数的转换。以下是两个常用函数:
- atoi() 和 atof() 函数:
int atoi(const char *str)
:用于将ASCII形式的字符串转换为整数(int)。如果输入不是有效的数字,结果将是未定义的行为。double atof(const char *str)
或float atof()
:用于将字符串转换为双精度浮点数(double)。同样,如果输入非法,可能会导致错误。
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "123";
int num_int = atoi(str); // 将字符串转为int
double num_float = atof(str); // 将字符串转为double
printf("Integer value: %d\n", num_int);
printf("Double value: %.2f\n", num_float);
return 0;
}
注意:这两个函数都是直接处理整个字符串,遇到非数字字符就停止转换,所以对于含有前导空格、逗号等非数字字符的字符串,需要先进行清理。
另外,如果你需要更大的精度和更严格的控制转换过程,可以使用strtol
和strtod
函数,并指定基数(如十进制)以及错误处理模式。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
long long strtol(const char *str, char **endptr, int base);
double strtod(const char *restrict str, char **restrict endptr);
int main() {
char str[] = "123.45";
long long num_longlong = strtol(str, NULL, 10);
double num_double = strtod(str, NULL);
printf("Long long value: %lld\n", num_longlong);
printf("Double value: %.2f\n", num_double);
return 0;
}
相关推荐


















