C while while循环直到用户输入“quit”

时间:2014-03-09 09:18:32

标签: c string scanf

这是我的代码: 1.用户输入两个名称,中间有空格。这意味着需要读取两个字符串。即输入:     John Doe。

  1. 然后在char数组中检查字符串。 (工作正常)。
  2. while循环继续,直到用户键入" stop" - 只有"停止"。 如果"停止"如何让它直接停止?输入 - 无需检查第二个字符串?
  3. 代码:

    while(bool==false)
    {
        scanf("%20s%20s", name1, name2);
    
        if(strcmp(name1, "stop")==0)
        {
            break;        
        }
        // but still the second name has to be entered
    
        rest of code...
    
    }
    

    感谢您的任何提示!

2 个答案:

答案 0 :(得分:1)

我建议你使用fgets来获取输入,检查"stop"字符串,然后使用sscanf来解析输入。

答案 1 :(得分:0)

您可以使用scanf提供的正则表达式字符类支持。

你可以这样做:

scanf("%s%[^\n]s", name, temp);

此处,您的第一个字是必填字,而第二个字是可选的。

当您输入2个单词时,temp会有一个前导空格。 如果您想直接避免它,可以通过以下方式实现:

char *p = temp;
scanf("%s%[^\n]s", name, p++);

在此处,您可以稍后使用namep

访问您的2个字词