C- 如何限制用户只能输入特定数量的元素?
C- How to restrict user to only enter a specific amount of elements?
我希望用户输入 10 个数字,如果他们输入的不是 10 个数字,我想告诉他们这是无效的。不太确定该怎么做,我尝试使用这样的 if 语句:
{
char numbers[11];
printf("Enter your 10 numbers: ");
scanf("%s", numbers);
if ( *numbers != 11)
printf("Enter a valid number.\n");
else
printf("Your number is %s: \n", numbers);
return 0;
}
有办法吗?
您应该将读取的字符串限制在最多 10 char
秒(使用 %10s
)——否则您可能会写出越界。
您还应该确保阅读有效,并且您可以使用 strlen
.
计算字符串中 char
的数量
numbers
在这里具有误导性。它会接受任何非空格 char
s.
示例:
#include <stdio.h>
#include <string.h>
int main()
{
char numbers[11];
printf("Enter your 10 numbers: ");
if(scanf("%10s", numbers) != 1 || strlen(numbers) != 10) {
printf("Enter a valid number.\n");
} else {
printf("Your number is: %s\n", numbers);
}
}
如果要确保输入的字符串只包含数字,可以将 scanf
格式限制为 %10[0-9]
:
#include <stdio.h>
#include <string.h>
int main()
{
char numbers[11];
printf("Enter your 10 digits: ");
if(scanf("%10[0-9]", numbers) != 1 || strlen(numbers) != 10 ) {
printf("Enter a valid number.\n");
} else {
printf("Your number is: %s\n", numbers);
}
}
我希望用户输入 10 个数字,如果他们输入的不是 10 个数字,我想告诉他们这是无效的。不太确定该怎么做,我尝试使用这样的 if 语句:
{
char numbers[11];
printf("Enter your 10 numbers: ");
scanf("%s", numbers);
if ( *numbers != 11)
printf("Enter a valid number.\n");
else
printf("Your number is %s: \n", numbers);
return 0;
}
有办法吗?
您应该将读取的字符串限制在最多 10 char
秒(使用 %10s
)——否则您可能会写出越界。
您还应该确保阅读有效,并且您可以使用 strlen
.
char
的数量
numbers
在这里具有误导性。它会接受任何非空格 char
s.
示例:
#include <stdio.h>
#include <string.h>
int main()
{
char numbers[11];
printf("Enter your 10 numbers: ");
if(scanf("%10s", numbers) != 1 || strlen(numbers) != 10) {
printf("Enter a valid number.\n");
} else {
printf("Your number is: %s\n", numbers);
}
}
如果要确保输入的字符串只包含数字,可以将 scanf
格式限制为 %10[0-9]
:
#include <stdio.h>
#include <string.h>
int main()
{
char numbers[11];
printf("Enter your 10 digits: ");
if(scanf("%10[0-9]", numbers) != 1 || strlen(numbers) != 10 ) {
printf("Enter a valid number.\n");
} else {
printf("Your number is: %s\n", numbers);
}
}