我试图用C语言构建一个能够改变角色的功能' f'和/或' o'字符串到' x'。出于某种原因,当我运行程序时,我不断收到分段错误(核心转储),即使它编译没有问题。我知道当程序试图访问内存中无法访问的位置时会发生分段错误,但是,我不知道我的代码中可能会导致此问题。这是我的代码:
#include <stdio.h>
void censor(char p[]);
int main(){
censor("foodfool");
return 0;
}
void censor(char p[]){
int i;
for(i = 0;p[i] != '\0';i++){
if(p[i] == 'f' || p[i] == 'o')
p[i] = 'x';
printf("%c", p[i]);
}
printf("\n");
}
答案 0 :(得分:2)
字符串"foodfool"
是编译时常量,您无法修改。将其替换为char
数组(char[]
)或堆分配的char
指针(char*
)。