字符串转数字,C语言这样做!·字符串转数字·手动转换提供更多控制但可能更容易出错
作者:网络发烧程序猿 |
发布时间:2025-06-20 |
字符串转数字,C语言这样做!
1、直接上函数,转换字符串变数字
使用C语言的标准库函数,可以轻松将字符串转换为整数。以下是一个简单示例:
```c
include
include
int main() {
char str[] = "12345";
int num = atoi(str);
printf("转换后的数字是:%d\n", num);
return 0;
}
```
2、功能更强,处理复杂情况还带错误检测
`strtod` 函数比 `atoi` 更强大,它可以处理浮点数,并且可以检测错误。以下是一个示例:
```c
include
include
int main() {
char str[] = "123.45";
double num = strtod(str, NULL);
printf("转换后的数字是:%f\n", num);
return 0;
}
```
3、格式化输入,灵活转换
`sscanf` 函数可以从字符串中读取格式化输入,也可以用来转换字符串为数字。以下是一个示例:
```c
include
int main() {
char str[] = "100 A";
int num;
if (sscanf(str, "%d", &num) == 1) {
printf("转换后的数字是:%d\n", num);
}
return 0;
}
```
4、自己动手,丰衣足食——手动转换字符串为数字
不使用库函数,你可以手动实现字符串到数字的转换。以下是一个简单的示例:
```c
include
include
int str_to_int(const char str) {
int num = 0;
while (str) {
if (str >= '0' && str <= '9') {
num = num 10 + (str - '0');
}
str++;
}
return num;
}
int main() {
char str[] = "12345";
int num = str_to_int(str);
printf("手动转换后的数字是:%d\n", num);
return 0;
}
```
常见问答
问题 |
答案 |
atoi 和 strtod 有何区别? |
atoi 更简单,但没有错误检测。strtod 提供了更多功能和错误处理。 |
如何将字符串转换为浮点数? |
可以使用 atoi 或 strtod 函数将字符串转换为浮点数。 |
字符串转换数字时如何处理空格和无效字符? |
可以使用 strtol 进行详细控制,或在转换之前清理字符串。 |
手动转换和库函数有何优劣? |
手动转换提供更多控制,但可能更容易出错。库函数通常更高效、可靠。 |
如何转换带符号的数字字符串? |
大多数转换函数自动处理正负符号。 |