繁体   English   中英

C while循环,直到用户输入“退出”

[英]C while loop until user enters “quit”

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

  1. 然后在字符数组中检查字符串。 (工作正常)。
  2. while循环继续进行,直到用户键入“ stop”-仅输入“ stop”。 如果输入“停止”,如何使它直接停止-无需检查第二个字符串?

编码:

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...

}

感谢您的提示!

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

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

您可以这样做:

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

在这里,您的第一个单词是必填项,第二个单词是可选项。

当您输入2个单词时,您的temp将有一个前导空间。 如果您想直接避免它,可以通过以下方法做到:

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

在这里,您以后可以使用namep访问您的2个单词

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM