c语言怎么让输入的数字忽略负号
时间: 2024-09-28 17:17:47 浏览: 37
在C语言中,如果你想让用户输入一个数字并忽略负号,可以先提示用户输入一个字符串,然后处理这个字符串来提取正数部分。下面是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[50]; // 假设最大输入长度为49
printf("请输入一个数字(包括负号):");
fgets(input, sizeof(input), stdin); // 获取用户输入
int num = 0;
int sign = 1; // 初始化为正数
for (size_t i = 0; i < strlen(input); ++i) {
if (input[i] == '-' && i == 0) { // 如果第一个字符是负号,并且不是空格
continue; // 跳过,继续检查下一个字符
} else if (!isdigit(input[i])) { // 非数字字符,结束循环
break;
} else {
num = num * 10 + (input[i] - '0'); // 加上当前数字对应的值
}
}
// 根据sign判断最终结果是正还是负
if (input[0] == '-') {
num *= -1; // 如果开头是负号,则取相反数
}
printf("忽略负号后的数字是:%d\n", num);
return 0;
}