我正在尝试在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] != ' ';i++){
if(p[i] == 'f' || p[i] == 'o')
p[i] = 'x';
printf("%c", p[i]);
}
printf("n");
}
字符串"foodfool"
是一个编译时常数,您无法修改。用char
阵列(char[]
(或堆分配的char
指针(char*
(。