【发布时间】:2021-12-16 22:11:04
【问题描述】:
我正在尝试用 C 语言创建一个程序,用 _ 替换字符串中的字符。
int main(){
replace("hello");
return 0;
}
void replace(const char secret[]){
int seret_lenght = strlen(secret);
int i;
for(i=0; i<seret_lenght; i++){
if(secret[i] == 'h'){
secret[i] = '_';
}
}
printf("%s", secret);
}
结果应该是:
_你好
但是终端只打印你好。
【问题讨论】:
-
secret[i] = '_';(你的编译器可能会警告你!) -
"hello"的类型为const char*。你不能修改它。 -
请将编译器的警告级别提高到最大,我相信它会告诉你不能分配给
const char。请注意,即使您更改了参数数据类型,您也是从main()传递了一个const char []。你也需要改变它。 -
当我删除 const 并添加 secret[i] = '_';控制台显示分段错误并且不打印任何内容。