字符指针赋值段错误

标签 c string segmentation-fault variable-assignment

#include <stdio.h>
#include <stdlib.h>
int main(){
 char *str="abcdce";
 char c='c';
 char *pfast=str,*pslow=str;
 while(*pfast!='\0'){
     if(*pfast==c){
       pfast++;
       *pslow=*pfast; //error here when pfast reaches the first 'c'
     }
    pfast++;
    pslow++;
 }
 *pslow='\0';
 return 0;
}

运行到"*pslow=*pfast;"的赋值语句时出现segment fault...

有人告诉我为什么,提前谢谢!

最佳答案

您正在尝试更改导致未定义行为的字符串文字。

改变

char *str="abcdce";

char str[] ="abcdce";

关于字符指针赋值段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5442468/

相关文章:

c - 将 C 基元值包装在 CFNumbers 的 CFArray 中

c - 使用 fgets 后有没有办法后退一行?

python - 从 Python 中的任何给定字符串类型中删除非 ascii 字符

c - strcpy 周围的段错误?

c - USB编程教程

c# - C#中的字符串乘法

java - 如果分隔字符串只有一项,是否有 "cleaner"方法来解析它?

直接来自教科书的c段错误

C-将字符串保存到数组并打印字符

c - 用其他子字符串替换字符串的子字符串时出现段错误