gpt4 book ai didi

c - 使用 strtok 替换输入文件 C 中的部分字符串

转载 作者:行者123 更新时间:2023-11-30 17:09:22 25 4
gpt4 key购买 nike

所以我有一个简单的文件“猫狗鸡鼠”。我正在尝试将其加载到字符串中并更改其中一个单词。我有

int main(){

FILE *ifp;
char *entry;
char *string;
char *token;

ifp=fopen("/home/names.txt", "r");

entry=malloc(200*sizeof(char));
while(fgets(entry,75,ifp)){
}

printf("%s\n",entry);
token=strtok(entry," ");

while(token!=NULL){

if(token=="dog")
string="bird";

string=token;
printf("%s ",string);
token=strtok(NULL," ");
}
}

但是,当我尝试这样做时,它并没有将“狗”一词替换为“鸟”。我做错了什么?

最佳答案

现在将修改原始字符串并将其存储在不同的字符数组中 -

char string[100];                // in your original code allocate memory to pointer string
token=strtok(entry," ");
size_t n;
while(token!=NULL){
n=strlen(string); // calculate string length
if(strcmp(token,"dog")==0) // if "dog" found
sprintf(&string[n],"bird "); // add "bird " at that position
else
sprintf(&string[n],"%s ",token); //if doesn't add token
token=strtok(NULL," ");
}

注意 - 不要像这样比较字符串 -

    if(token=="dog")

使用函数strcmp来自<string.h>

关于c - 使用 strtok 替换输入文件 C 中的部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320211/

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