gpt4 book ai didi

C 在字符串中搜索单词

转载 作者:行者123 更新时间:2023-11-30 16:51:52 25 4
gpt4 key购买 nike

我正在尝试编写一段代码,从控制台扫描字符串并尝试在 .txt 文件中查找相同的单词。然后打印该单词并打印它是积极的还是消极的单词。

.txt 如下所示:

同意:POZ
美丽:POZ
惊人:POZ
否定:否定
恶心:NEG
坏:否定

但由于某种原因,第二个 while 中的 if 不起作用。如有任何帮助,我们将不胜感激。

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 语句,就像它不正确一样。整个区 block :

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");
}

最佳答案

在……

agree: POZ

您扫描到: ...

rijec =(strtok(line,":"));

结果是rijec指向开头,并且在位置有一个\0(下面写成#) ::

agree# POZ
^
rijec

然后扫描到:

vrsta =(strtok(NULL," "));

结果是vrsta指向该位置,该位置为\0(下面写为#):

agree##POZ
^
vrsta

vrsta指向一个空字符串。您必须推进它 - 或者更好 - 继续使用可能的 \n 作为分隔符进行标记。

关于C 在字符串中搜索单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41532938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com