【发布时间】:2021-06-18 08:14:50
【问题描述】:
我正在尝试在 C 中编写代码,其中我要求用户输入一个字符串数组,如果他们的输入超过 10 的长度,那么我将打印一个错误,然后循环返回并再次询问,直到他们输入低于 10 的字符串
我所做的是创建一个 11 位数组,然后是一个无限循环,然后创建一个 if 语句,说明如果第 11 位不再是 == '/0' 那么我将打印“错误”做了一个 else 作为休息。
代码:
char x[11];
int main(void) {
for (;;) {
printf("Enter String X: ");
scanf("%s", x);
if (x[10] != '\0') {
printf("ERROR\n");
} else {
break;
}
}
return (EXIT_SUCCESS);
}
如果我输入等于或小于 10 位的字符串,这在大多数情况下都有效,如果我输入超过 10 位,那么它也可以提示“错误”并要求再次输入字符串,
但问题是,当我输入超过 10 以提示“错误”,然后在接受的长度内输入时,它仍然会给我“错误”,除非我输入 10 的确切长度,否则它将起作用
【问题讨论】:
-
提示:
strlen(x) > 0