(6)从键盘输入一串数字字符,将其转换成对应的整数。例如输入字符串:"368",则输出整数:368。用c语言
时间: 2025-06-09 08:59:41 浏览: 9
在C语言中,我们可以利用`atoi()`函数或者自定义函数来实现字符串到整数的转换。这里提供一个基本的实现方法:
```c
#include <stdio.h>
#include <stdlib.h> // 包含 atoi 函数头
int string_to_int(char str[]) {
int num = 0;
bool is_negative = false;
// 检查字符串是否以负号开头
if (str[0] == '-') {
is_negative = true;
str++; // 移动指针跳过负号
}
// 遍历字符串,每一位转换成十进制
for (char *c = str; *c != '\0'; c++) {
if (*c >= '0' && *c <= '9') {
num = num * 10 + (*c - '0');
} else {
// 如果遇到非数字字符,结束转换
break;
}
}
// 如果开始时是负数,添加负号
if (is_negative) {
num *= -1;
}
return num;
}
int main() {
char input_str[100];
printf("请输入一串数字字符: ");
fgets(input_str, sizeof(input_str), stdin); // 读取用户输入,包括换行符
input_str[strcspn(input_str, "\n")] = '\0'; // 去除字符串尾部的换行符
int result = string_to_int(input_str);
printf("转换后的整数为: %d\n", result);
return 0;
}
```
在这个程序中,`string_to_int()` 函数接收一个字符串作为输入,遍历每个字符,如果字符是数字,就将其转换成相应的十进制数值,并累加到`num`上。如果遇到非数字字符,或者到达字符串结尾,就停止转换。
注意:`fgets()` 和 `strcspn()` 函数用于安全地读取用户输入并去除换行符,因为`scanf()`可能会留下多余的换行符导致解析错误。
阅读全文
相关推荐


















