【问题标题】:Replace character with _ in C [closed]在C中用_替换字符[关闭]
【发布时间】: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] = '_';控制台显示分段错误并且不打印任何内容。

标签: c string


【解决方案1】:

如评论中所述,替换 secret[i] == '_';。运算符== 仅用于比较两个值。运算符= 用于赋值。此外,参数是const 的数组。如果您打算写入数组,则必须删除 const

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 2012-12-11
    • 2013-04-14
    • 1970-01-01
    • 2018-06-12
    • 2015-01-20
    • 2012-06-18
    相关资源
    最近更新 更多