c - 在 C 函数中修改字符串

标签 c string

<分区>

我想弄清楚为什么这行不通,但我不太确定。

void main(void){ 
    char* s = "aBCde F. hjiodhfvev, . efof Gh";
    to_lower_case(s); 
    printf("%s",s); 
}

to_lower_case() 函数只是一个随机函数,其功能如其名。我想这与被声明为 constant 的字符串有关。

最佳答案

这就是问题所在

char* s = "aBCde F. hjiodhfvev, . efof Gh";

字符串文字(引号中的文字)是只读的。您无法修改它们。

你应该声明为

char s[] = "aBCde F. hjiodhfvev, . efof Gh";

关于c - 在 C 函数中修改字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48550588/

相关文章:

c - 在函数外部使用 3d 数组

c - 使用 argv 获取命令行?

java - 我无法在微调器中设置 String[] 值

java - 在 POST 方法中将字符串发送到 Spring(Jackson) REST Controller

c# - 将 String 与省略空行进行比较?

Javascript 分割字符串

python - 存储长字符串资源的最 Pythonic/Django 风格的方法是什么?

php - 树莓派和本地连接(无云)spark 核心之间的合适协议(protocol)

c - 为什么我的数组元素被覆盖?

python - 从文件读取参数到C和Python脚本