如何扫描字符串直到在C中输入特定字符串

时间:2018-01-07 13:11:42

标签: c string

我一直在尝试编写代码,其中一部分是扫描多个字符串,直到它获得'Q'字符串。在这种情况下,scanf应该停止。 我该怎么办? 我尝试了几种方法,但都没有。

x=4;
y=2+6;
X=2;
z=5;
print(4);

4 个答案:

答案 0 :(得分:1)

你可以使用string.h库中的strcmp()函数来完成它。

#include <stdio.h>
#include <string.h>

int main() {
    char array[100] = {0};
    int flag = 1;

    while (flag == 1) {
        scanf("%s", array);

        if (!strcmp(array, "Q"))
                flag = 0;
    }
    return 0;
}

答案 1 :(得分:0)

您可以使用此代码执行此操作

ch= getchar();
while( (ch != 'q' || ch !='Q') {
ch  = getchar();       
 putc(ch, fp);
   }

你的错误就在这里scanf("%s", array);它会读取字符串,如果条件你正在检查没有数组变量的索引  您也可以通过`scanf(&#34;%s&#34;,数组)读取值来检查;通过循环数组的值来在数组中找到q

char a[100];
int i;
scanf("%c",&a[0]);
i=1;
while(a[i]!='q'&& a[i]='Q')
{

scanf("%c",&a[i]);
i++;
}

答案 2 :(得分:0)

array [0] ==&#39; Q&#39;

#include <stdio.h>

int main(){
    int flag = 1;
    char array[100]={0};

    while (flag == 1)
    {
        scanf("%s", array);
        if(array[0] == 'Q') {
           flag=0;
        }

    }
}

答案 3 :(得分:0)

如果你必须使用%99s(请注意'\0'以防止缓冲区溢出 - > 99 + #include <stdio.h> int main() { char array[100]={0}; do { scanf("%99s", array); } while (!(strlen(array) == 1 && array[0] == 'Q')); } ==你的缓冲区长度)

这就是我要做的事情。

{{1}}

Online C Compiler