0

我想制作一个处理用户输入的程序,更具体地说是键入的斜杠(“/”)。我用一个变量来计算它们。问题是,它说“错误”。每次我做一个正确的输入,在这种情况下2个斜杠(//)。

这行得通

插入一个字符串://

好的。

这不起作用

插入一个字符串:///

错误。

插入一个字符串://

错误。- 它应该是“好的”。为什么说错误?

我曾经调试过我的程序,发现应用程序永远不会退出while循环,所以它不知道最终的斜杠计数值。我在寻求帮助。

char input[50];
int slash_count = 0;
int i;
printf("Insert a string: ");
scanf("%s", input);
for(i=0; i<strlen(input); i++)
{
    if (input[i] == '/')
    {
        slash_count++;
    }
}
while (slash_count != 2)
{
    printf("error.\n");
    printf("Insert a string: ");
    scanf("%s", input);
}
printf("ok");
4

1 回答 1

0

while 循环应该覆盖整个

输入 -> 检查 -> 验证例程。

但是,你有你的 while 循环来重试

验证后。

因此,如果您之前获得了 3 个,

你可以重试

那么你的 slash_count 永远不会更新。

int slash_count = 0;

while (slash_count != 2) {
    slash_count = 0;
    char input[50];
    printf("Insert a string: ")
    scanf("%s", input)
    for (int i = 0; i < strlen(input); i++) {
        if (input[i] == '/') {
            slash_count++;
            if (slash_count > 2) break;
        }
    }
}
printf("okay");
于 2013-10-15T16:02:51.097 回答