gpt4 book ai didi

C:验证输入数组元素

转载 作者:行者123 更新时间:2023-11-30 19:06:23 24 4
gpt4 key购买 nike

代码提示用户输入具有混合类型值的字符串(该字符串可以包含一位整数、“-”等特殊字符或单个字符),并且输入将逐个字母存储到字符数组中字符数组[10]

然后我编写了一个 for 循环来循环遍历每个元素,以检查是否存在任何无效字符(即不是一位整数、不是“-”的特殊字符或不是我选择的单个字符)。

但是,无论输入是什么(即使输入只包含想要的字符),总是会显示无效字符的错误消息。我通过一一打印每个元素来检查数组中存储的内容,它们看起来很好。我应该如何为此目的修复我的代码?

int main(void){

char in[10];

printf("Enter only 0-9 or '-' or 'w':");
scanf("%s", in);
getchar();


int i;
for(i = 0; i < 11; i++){
while(in[i] != '0' || in[i] != '1' || in[i] != '2' || in[i] != '3' ||
in[i] != '4' || in[i] != '5' || in[i] != '6' || in[i] != '7' ||
in[i] != '8' || in[i] != '9' || in[i] != '-' || in[i] != 'x')
{
printf("Error: Invalid input\n");
printf("Enter another one:");
scanf("%s", in);
getchar();
i = 0;
}
}

}

最佳答案

状况in[i] != '0' || in[i] != '1' ...永远为真,因为单个字符总是 !='0'!='1' 。您可能是说 in[i] != '0' && in[i] != '1' .

应该是for(i = 0; i < 10; i++) ,不是11 ,因为这会超出数组边界。

关于C:验证输入数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48271962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com