C语言判断输入的合法性
时间: 2024-10-13 07:15:13 浏览: 65
词法分析.txt
在C语言中,判断用户输入的合法性通常涉及到对用户输入的数据进行验证。这可以基于预期的数据类型、范围或其他特定规则。以下是一些常见的方法:
1. **数据类型检查**:例如,如果你期望用户输入整数,你可以使用`scanf()`函数读取,并随后通过`isdigit()`函数检查字符是否为数字。
```c
int input;
while (scanf("%d", &input) != 1 || input < 0) {
printf("请输入一个非负整数:");
// 清理输入缓冲区
scanf("%*[^\n]");
}
```
2. **长度限制**:如果输入需要满足特定长度,可以设置一个循环并检查输入直到达到预期长度。
```c
char password[10];
size_t len = 0;
while (len < sizeof(password)) {
char ch = getchar();
if (ch == '\n' || ch == EOF) break; // 输入结束符或文件结束
if (isalpha(ch) || isdigit(ch)) { // 检查字母或数字
password[len++] = ch;
} else {
printf("密码只能包含字母和数字,请重新输入:\n");
len = 0; // 从头开始输入
}
}
password[len] = '\0'; // 添加终止符
```
3. **范围检查**:对于数值型输入,可以设定上下限。
```c
int age;
while (age < 0 || age > 120) {
printf("请输入年龄(0-120):");
scanf("%d", &age);
}
```
阅读全文