C++ 从指定位置开始,删除指定长度的字符串

来源:互联网 发布:ubuntu如何编辑文件 编辑:程序博客网 时间:2024/06/07 10:22

1:先检查指定位置和指定长度的合法性;

2:找到指定位置;

3:删除指定长度个字符串。

具体代码如下:

#include <iostream>using namespace std;char *GetCharsDeleted(char *str,int pos,int len){char *p=str+pos-1;int i=0;char *temp=NULL;int ls=strlen(str);//计算字符长度if(pos<1 || (p-str)>ls)//检查pos是否大于1,{//或者是否超出字符串长度cout<<"pos error!"<<endl;exit(1);}char *end=str;while(*end++);if((p+len-str) >=ls){temp=new char[end-p-1];while(*p!='\0')temp[i++]=*p++;}if(*p && *(p+len)){temp=new char[len];while(len--){temp[i++]=*p++;}}return temp;}char *deleteChars(char *str,int pos,int len){char *p=str+pos-1;//p指向pos位置的字符int ls=strlen(str);//计算字符长度if(pos<1 || (p-str)>ls)//检查pos是否大于1,{//或者是否超出字符串长度return str;}if((p+len-str)>=ls)//len大于pos后剩余的字符个数// 只需对pos位置赋‘\0’{*p='\0';return str;}//当len小于pos位置后的字符个数时,进行删除操作while(*p && *(p+len)){*p=*(p+len);p++;}*p='\0';return str;}int main(){char str[]="Welcome to here;";int pos=0;int len=0;cout<<"string: "<<str<<endl;cout<<"please input pos:";cin>>pos;cout<<"please input len:";cin>>len;cout<<"delete chars :"<<GetCharsDeleted(str,pos,len)<<endl;deleteChars(str,pos,len);cout<<"after delete :"<<str<<endl;return 0;}
GetCharsDeleted函数用来输出将要被删除的字符串;

deleteChars函数用来删除指定字符串。

阅读全文
0 0
原创粉丝点击