把输入的字符串转换成数字
时间: 2024-11-09 11:17:41 浏览: 12
在C语言中,将字符串转换为整数或浮点数通常会涉及到`atoi()`、`atof()`或者自定义的函数。这里我们主要看两种情况:
**转换整数**:
你可以使用`atoi()`函数,它是`stdlib.h`库的一部分,用于将ASCII表示的字符串转换成整数。例如:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[] = "123";
int num = atoi(str);
printf("字符串 %s 转换成整数是 %d\n", str, num);
return 0;
}
```
注意:如果字符串不是有效的数字,`atoi()`函数会返回0。
**转换浮点数**:
C标准库并没有直接提供将字符串转换为浮点数的函数,但你可以使用`strtol()`和`strtod()`函数配合转换,或者使用` atof()`函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
double string_to_float(const char* str) {
double num = strtod(str, NULL);
if (num == HUGE_VAL || num == -HUGE_VAL) {
printf("无法转换为有效浮点数\n");
return 0; // 或者抛出异常
}
return num;
}
int main() {
char str[] = "3.14";
double f = string_to_float(str);
printf("字符串 %s 转换成浮点数是 %.2f\n", str, f);
return 0;
}
```
同样地,如果字符串不能被成功解析为数字,这些函数可能会返回特定的值,如`HUGE_VAL`或`-HUGE_VAL`。
阅读全文