Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

c - how to replace a char in char *

total newbie here. i was trying to replace a character in char * but my program gives error

#include <stdio.h>

int main(int argc, char **argv)
{
    char *mystring ="love is alweys better yoe";
    int count = 1;

    for (count ;  count < 23; count++)
    {     
    if ((mystring[count] == 0x65 )) //&& ((mystring[count+1] > 0x41) && (mystring[count+1] < 0x7A))) 
    {
      mystring[count] = 0x45; //here occur the freezing
      printf ("%c
", mystring[count]); 
      //break;
    };
    };

    printf("%s
",mystring);
    return 0;
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The

char *mystring ="love is alweys better yoe"

makes mystring read-only

you need to copy the string into a buffer before you can change it

e.g.

char mystring[128];
strcpy( mystring , "love is alweys better yoe" );

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...