我有一个要解析的字符串,它可能包含符号“&急性;”取决于用户数据。所以我想消除这个符号并将其替换为 '. 示例:
之前 --> 不会再被愚弄了 之后 --> 不会再被愚弄
这是我的尝试,但无论如何都不起作用..
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/