0
文字列をコンソールからスキャンして、同じ単語を.txtファイルで検索しようとしています。次に、単語を印刷し、その正または負の単語がある場合は印刷します。C文字列内の単語を検索する
agree: POZ beautiful: POZ amazing: POZ deny: NEG disgusting: NEG bad: NEG
をしかし、いくつかの理由で二しばらくは動作しませんであれば:
.txtファイルは、次のようになります。どんな助けもありがとうございます。
int main()
{
char *rijec;
char *vrsta;
char line[200+1];
char konzola[420+1];
char *pch;
char pch1[500];
char rijec1[100];
char vrsta1[50];
//char *ret;
FILE *ulaz;
FILE *izlaz;
ulaz = fopen("Sentiment.txt","r");
izlaz = fopen("RezultatAnalize.txt","w");
if(ulaz == NULL || izlaz == NULL)
exit(1);
scanf(" %420[^\n]", konzola);
printf("\nKonzola: %s\n", konzola);
pch = strtok (konzola," .!");
//strcpy(pch1, pch);
while (pch != NULL)
{
//strcpy(pch, pch1);
printf ("\- %s -", pch1);
strcpy(pch1, pch);
pch = strtok (NULL, " ,.!");
//strcpy(pch1, pch);
}
while (fgets(line, 200, ulaz) != NULL){
rijec =(strtok(line,":"));
vrsta =(strtok(NULL," "));
strcpy(rijec1, rijec);
strcpy(vrsta1, vrsta);
printf("\n%s = %s", rijec, vrsta);
if(strcmp(rijec1,pch1) == NULL){
//printf("\nA match has been found");
printf(" %s......", rijec1);
if (strcmp(vrsta1,"POZ") == 0)
printf("Analiza: pozitivna");
else if (strcmp(vrsta1,"NEG") == 0)
printf("Analiza: negativna");
}
}
ifステートメントは、trueでないように無視されます。このブロック全体:
if(strcmp(rijec1,pch1) == NULL)
{
//printf("\nA match has been found");
printf(" %s......", rijec1);
if (strcmp(vrsta1,"POZ") == 0)
printf("Analiza: pozitivna");
else if (strcmp(vrsta1,"NEG") == 0)
printf("Analiza: negativna");
}
"もし"あなたが "働いていない"という意味と、 "働いていない"とはどういう意味ですか? ifブロックに入っていない、アプリケーションがクラッシュしている、何が「動作していない」のですか? – pstrjds
'vrsta1'は改行を含みます。 'pch1'は最後の単語です。 – BLUEPIXY
あなたがプリントアウトしたか(またはデバッガをステップインして)比較している文字列の値を見て、あなたが比較していると考えるものを比較していることを確認しましたか? – pstrjds