c - 替换C中的特殊字符 '´'

标签 c

我有一个要解析的字符串,它可能包含符号“&急性;”取决于用户数据。所以我想消除这个符号并将其替换为 '. 示例:

之前 --> 不会再被愚弄了 之后 --> 不会再被愚弄

这是我的尝试,但无论如何都不起作用..

int main()
{

  char* permenant="Won´t Get Fooled Again";
  char* s=permenant;
  for ( ; *s && *s != '&'; s++) ;
  printf("found '&' character \n"); // ---> OK
  printf("s=%s \n",s);              // ---> OK
  if (*(s+1) == 'a' && *(s+2) == 'c' && *(s+3) == 'u' && *(s+4) == 't'  && *(s+5) == 'e'  && *(s+6) == ';') // ---> OK
  {
     *s='\'';   //---> NO also if *s='a'; segmentation fault !!
     while(*(s+7)!='\0')
     {
          *(s+1)=*(s+7);
          s++;
          printf("the next character is -> %c \n", *(s+7));
     }// ---> Segmentation fault also if i remove *s='\''

   }
  printf("permenant=%s \n",permenant);

return 0;

}

最佳答案

您正在使用字符串文字,即 const char,因此您无法修改它。

您可以将其更改为

char permenant[]="Won´t Get Fooled Again";

它将生成一个用文字字符串的字符初始化的 char 数组。

旁注:s 指针完全没用。您可以直接对permanent执行检查。

关于c - 替换C中的特殊字符 '´',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44371325/

相关文章:

c++ - 从 Fortran 77 代码调用 C/C++ 代码

c - 在 C 中获取 LAN 网络上的所有主机?

c - C编程中如何在函数和main()之间跳转

c++ - 如何在不执行的情况下捕获未定义的行为?

c - 中止陷阱 6 malloc

c - 如何在 C 中处理大量数字

在源代码中创建字符串数组在可执行文件中不起作用

c++ - 如何到 "uninclude"头文件?

c - 数据结构和算法的API设计

c - 向nor flash发送命令