C 中的分段错误,在带有 char* 的函数中

Segmentation fault in C, in fuction with a char*

我是C语言新手,不懂为什么我的代码会报错,求大神指教

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
char* d(char*);
int main(){

char* str = "Google";
d(str);
return 0;


}
char* d(char* str){
int x = 0;
int len = strlen(str);
while (x != len){
if (str[x] == str[x+1]){
str[x] = 0;
str[x+1] = 0;
}
x++;
}
str = '[=10=]';
return str;
}

我需要画一个不重复字母的字段

语句char *s = "Google"创建了一个字符串文字。大多数编译器将字符串文字存储在内存的 read-only 部分。

试试这个:

int main()
{
//    char *str = "Google";
    char str[] = "Google";
    d(str);
    return 0;
}

它应该做你想做的事。

有关详细信息,请参阅 What’s difference between char s[] and char *s in C?