C语言 字符串转数字
时间: 2024-09-10 17:01:14 浏览: 88
C语言实现将字符串转换为数字的方法
在C语言中,将字符串转换为数字可以通过多种函数实现,具体取决于数字的类型。例如,可以使用 `atoi`、`atol`、`atof` 等函数将字符串转换为整数或浮点数。
1. `atoi`(ASCII to Integer)函数用于将C风格的字符串转换为整数。该函数定义在 `<stdlib.h>` 头文件中。如果字符串的开头不是数字或者有其他非数字字符出现,`atoi` 将停止转换并返回当前已解析的整数值。
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345";
int num = atoi(str);
printf("%d\n", num); // 输出: 12345
return 0;
}
```
2. `atol`(ASCII to Long)函数用于将字符串转换为长整型数。用法与 `atoi` 类似。
3. `atof`(ASCII to Float)函数用于将字符串转换为浮点数。同样定义在 `<stdlib.h>` 头文件中。它的功能与 `atoi` 类似,但它返回一个 `double` 类型的值。
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "123.45";
double num = atof(str);
printf("%f\n", num); // 输出: 123.450000
return 0;
}
```
除了标准库提供的函数,也可以通过字符串操作和类型转换手动进行转换,例如,遍历字符串中的字符并利用它们的ASCII值来构建数字。
需要注意的是,使用这些函数进行转换时,如果输入的字符串不是有效的数字表示,返回值是未定义的,可能不会给出错误提示或异常处理,因此使用时应当小心。
阅读全文