如果此问题已经得到回答,请道歉。我找不到任何帮助。
我的任务是创建一个函数,该函数接受参数中的结构(包含字符串)并替换该字符串中的字符。现在我正试图用字母替换空格' 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;
}
这是我得到的错误:
Seg fault !!!
答案 0 :(得分: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");