gpt4 book ai didi

检查字符串是否已经打印

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:02 26 4
gpt4 key购买 nike

我正在尝试构建一个 C 程序,该程序从文件中读取内容,对内容进行标记并同时对标记进行分类,将标记复制到临时数组中。我的目标是打印以前没有的标记打印。换句话说,如果 token 已经打印,则跳过打印该 token 。我实现此目的的方法是创建一个函数来检查 token 是否出现在我的数组临时文件中。如果 token 出现在数组 temp 中,则返回 1,否则返回 -1。我的问题是,该函数不起作用,isAdded 始终不是 1。因此,它仍然打印先前打印的标记。我追踪了我的代码,这对我来说似乎是正确的。我不知道为什么它总是返回 -1。

这是我的代码:

char *temp[MAX]; /*globally declared*/


void tokenize(FILE *input){

char *token;
int k=0;

char word[1000];
while(!feof(input)){
fgets(word,1000,input);
token = strtok(word, " \t\n");
while(token!=NULL){
if(isAdded(token)!=1){
if(isKeyword(token)==1){
printf("%s, %s\n", token, token);
}
temp[k] = (char*)malloc(strlen(token)+1);
strcpy(temp[k],token);
k++;
}
token= strtok(NULL, " \t\n");
}
}
}


int isAdded(char *token){
int i=0;
while(temp[i]!=NULL){
if(strcmp(temp[i],token)==0){
return 1;
break;
}
i++;
return -1;
}
}


int isKeyword(char *token){
int i=0;
while(resWord[i]!=NULL){
if(strcmp(resWord[i],token)==0){
return 1;
break;
}
i++;
}
}

最佳答案

将最后一个 return 移到 while 循环之外。

关于检查字符串是否已经打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982694/

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