我一直在尝试编写代码,其中一部分是扫描多个字符串,直到它获得'Q'字符串。在这种情况下,scanf应该停止。 我该怎么办? 我尝试了几种方法,但都没有。
x=4;
y=2+6;
X=2;
z=5;
print(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}}