我试图找到共同的子字符串和打印“是”如果它存在的代码。没有得到正确的输出检查共同的子字符串
实施例:
T=1 (NUMBER OF TEST CASES)
hello
world
输出:
YES ('O' is common in both)
代码:
#include<stdio.h>
#include<string.h>
int main(void){
int T,t;
scanf("%d",&T);
char A[100],B[100];
int i,j,flag=0;
t=1;
while(t<=T){
scanf("%[^/n]",&A);
scanf("%[^/n]",&B);
for(i=0;A[i]!='\0';i++){
for(j=0;B[j]!='\0';j++){
if(A[i]==B[j]){
flag=1;
break;
}
}
}
t++;
if(flag==1)
printf("YES");
else
printf("NO");
flag=0;
printf("\n");
}
return 0;
}
如果我读取使用fgets(A,100,stdin)
随后fgets(B,100,stdin)
字符串,编译器不读取第二串(它由于某种原因正在跳过声明)。
此外,当我在while
循环内使用fgets
语句时,它根本不读取字符串。
'的scanf( “%d%* C”,&T);','的scanf(“%[^/n的]“,&A);' - >'scanf(”%[^ \ n]%* c“,A);' – BLUEPIXY
当使用函数:scanf()和函数族时,总是检查返回的值2)使用格式输入/转换器进行刺激时,总是将输入字符的最大数量限制为比输入缓冲区中的字符数少1。 – user3629249
第一次调用scanf()将在输入缓冲区中保留'\ n'。需要在调用'string'输入函数之前读入/放弃。 – user3629249