c - 从函数中替换 char[] 中的字符

标签 c string replace character arrays

如何让我的 replace_char 函数正常工作?

我在下面的函数中尝试的方式在 Ubuntu 中使用 gcc 返回段错误。

我尝试过其他方法,但每次尝试更改值时,我都会出错。

int main (void)
{  
  char* string = "Hello World!";

  printf ("%s\n", string);
  replace_char(string, 10, 'a');
  printf ("%s\n", string);
}

void replace_char(char str[], int n, char c)
{
  str[n] = c;
}

最佳答案

您的replace_char 函数没有任何问题。问题是您正在尝试修改字符串文字(“Hello World!”),这是未定义的行为。尝试制作字符串的副本,如下所示:

char string[] = "Hello World!";

关于c - 从函数中替换 char[] 中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590098/

相关文章:

c - 字符串数组上的基本 qsort 在 qsort() 中崩溃

java - 替换 100 数组中的整数

java - Java中如何将一个字符串替换为另一个字符串并将其插入到下一行代码中

regex - vim 可视 block 搜索/替换仅替换一行中的第一次出现

c - 在 C 中根据条件实现循环

Java:比较两个字符串数组并删除两个数组中存在的元素

php - Nanopb - 用 PHP 解码

c - 函数不向数组分配任何内容(使用指针算术)

c - 使用c语言分割字符串

c - C中负数的表示?