我有一個顯然很容易的問題,但我只是不明白我做錯了什麼。 我有一個代碼,將測試控制檯中輸入的60個字符的文本,如果在該文本中出現「恐怖主義」字樣,它將提示「可疑文本」消息,當該字未出現時,將顯示「沒有可疑」。 輸入「模式」的文本應在輸入單詞「完成」時結束。這似乎是我的問題,因爲我的while循環不想結束。爲什麼「while」循環在滿足條件時沒有結束?
任何提示?
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
int start_with (char *sir1, char *sir2)
{
int i,j,k;
int len_sir2=strlen(sir2);
char sir3[60]="";
for (i=0;i<=len_sir2;i++)
{
sir3[i]=sir1[i];
}
k=(strcmp(sir2,sir3)) ? 0:1;
return k;
}
int main()
{
char *txt1;
char sir1[60]="", sir2[60]="terorist", sir_test[60]="done";
int i,j,lensir1, contor=0,buf_de_la=0, buf_la;
while (sir1!=sir_test)
{
printf("Enter desired text and press ENTER \n");
gets(sir1);
printf("\n");
buf_la=strlen(sir1);
char *txt1="Nothing suspect";
while (buf_de_la<buf_la-7)
{
char sirbuf[60]="";
j=buf_de_la;
for (i=0;i<=7;i++)
{
sirbuf[i]=sir1[j];
j=j+1;
}
if (start_with(sirbuf,sir2)==1)
{
txt1="SUSPECT text entered!";
break;
}
buf_de_la=buf_de_la+1;
}
printf("%s\n",txt1);
getch();
system("cls");
}
return 0;
}
STRCMP是你的朋友 – Morb
但還是......我有我的SIR1可變文本「做」裝(爵士[0 ] =「d」,sir [1] =「o」等),我可以看到調試值,但是strcmp(sir1,「done」)或strcmp(sir1,sir_test)返回0。不是1? – BogdanM