c++基础之字符串的插入与删除

来源:互联网 发布:linux socket多线程 编辑:程序博客网 时间:2024/06/03 17:38

删除字符:从一个字符串中间删除字符

void erase(char text[],int index){    int len=strlen(text);    for(int i=index;i<len;i++)    {       text[i]=text[i+1];//后面的字符前移    }}

如果要从一个字符串里删除多个不相邻的字符,则最佳方案是复制一份,这样只拷贝一次。

void erase(char text[],char del){    int len=strlen(text);//原字符串长度    int count=0;    char* copy=(char*)malloc(len+1);    for(int i=0;i<len;i++)    {        char ch=text[i];        if(ch!=del)        {           copy[count]=ch;           count++;        }    }    copy[count]=0;//添加结束符    strcpy(text,copy);//拷回原字符串    free(copy);//释放内存    }

插入字符:

void insert(char text[],int index,char ins){   int len=strlen(text);   for(int i=len;i>index;i--)   {       text[i]=text[i-1];//后面的字符前移   }   text[index]=ins;}