gpt4 book ai didi

c - 如何替换结构中字符串中的字符?

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

如果问题之前已经得到解答,我们深表歉意。我找不到任何帮助。

我的任务是创建一个函数,该函数在参数中采用结构(包含字符串)并替换该字符串中的字符。现在我正在尝试用字母“J”替换空格,但遇到了一些困难。

这是我的代码:

func.h

typedef struct item item;
struct item {
char * word;
};

void space(item * item, char letter);

func.c

void space(item * item, char letter) {

char * mot = item->word;
int size = strlen(item->word);
printf("\n\n%s\n\n",mot);

for(int i=0; i<=size; i++) {
if(mot[i] == ' ') {
mot[i] = letter;
}
}

printf("\n\nNEW WORD: ");
printf("%s",mot);
printf("\n\n");
}

main.c

int main(int argc, char *argv[]) {

printf("\n---Program---\n\n");

char *word;
char add = 'x';

item * item = malloc(sizeof(item));

item->word = "this is a word";
//printf("%s",item->word);

printf("\n\n");

space(item,add);

return 0;
}

这是我收到的错误:

段错误!!!

最佳答案

您正在为结构malloc空间,但不是为结构内的字符串分配空间。

item * item = malloc(sizeof(item));
item->word = malloc(sizeof(char) * MAXSTRINGSIZE); //add this line or something similar
strcpy(item->word, "this is a word");

关于c - 如何替换结构中字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39646193/

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