c语言,编程实现将一个10位以内的整数字符串转换为整数输出
时间: 2024-12-08 18:16:31 浏览: 18
在 C 语言中,将一个字符串表示的十进制整数转换为整数并输出,可以使用标准库函数 `atoi` 或自定义一个解析函数来完成。这里我将以自定义解析函数为例,因为 `atoi` 函数处理字符串前导空格和非数字字符时可能会有局限性。
首先,我们需要创建一个函数,如 `str_to_int`,其功能如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 自定义函数,将字符串转换为整数
int str_to_int(char *str) {
int num = 0;
int sign = 1; // 正负标志,默认正数
char *end;
if (str[0] == '-' || str[0] == '+') { // 检查是否带符号
sign = str[0] == '-' ? -1 : 1;
str++;
}
for (; isspace(*str); str++) {} // 跳过开头的空格
if (*str == '\0') return 0; // 如果字符串为空,返回0
for (end = str; isdigit(*end); end++) {
num = num * 10 + (*end - '0'); // 计算数值
}
return num * sign;
}
int main() {
char str[] = "1234567890"; // 测试字符串
int result = str_to_int(str);
printf("转换后的整数是:%d\n", result);
return 0;
}
```
在这个示例中,`str_to_int` 函数逐个字符读取输入的字符串,将其转换为数字,并累加到结果 `num` 中。遇到非数字字符或者字符串结束时停止计算。最后,根据字符串开始是否有符号 `-` 或 `+` 来确定最终结果的正负。
阅读全文