C语言输入int型,怎么忽略符号空格
时间: 2024-12-14 13:21:18 浏览: 2
在C语言中,如果你想从用户输入中获取一个整数并忽略符号(+或-)以及空格,可以使用`fgets()`函数读取字符串,然后通过一些处理步骤将字符串转换成整数。以下是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的库
int parseInt(char *str) {
int num = 0;
int sign = 1; // 假设数字是正的,默认值
char *token = strtok(str, " \t"); // 分割符是空格和制表符
while (token != NULL) {
if (token[0] == '+' || token[0] == '-') { // 检查符号
sign = (token[0] == '-') ? -1 : 1; // 记录符号,跳过它
token++; // 移动指针到下一个字符
} else {
// 将非空格字符转换成数字并累加
for (char *c = token; isdigit(*c); c++) {
num *= 10;
num += (*c - '0'); // 把字符转为数字并加到num上
}
token = strtok(NULL, " \t"); // 继续分割下一个数字
}
}
return num * sign; // 返回最终计算出的数字,考虑了符号
}
int main() {
char input[50];
printf("请输入一个整数(包括符号和空格):");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 去除换行符
int result = parseInt(input);
printf("忽略符号和空格后的整数值是:%d\n", result);
return 0;
}
```
在这个例子中,`parseInt`函数会处理输入的字符串,去除符号和空格,并把剩下的数字转换为整数。
阅读全文