C++ 字符串编程训练1

最近又到了找工作的时间,所以想每天抽点时间出来对编程进行相关训练。C++字符串是一个很重要的知识点,采用STL、算法等C++优于C的方面,能够使问题解决起来更加轻松。以下程序都是自己写的,可能有些地方时间效率、空间效率不高,所以希望大家能够多多讨论交流,互相提升。

题目:删除子串

说明:给定两个形参str和substr,其中str为源字符串,substr为需要删除的子串,如果str中包含substr,则将其删除并输出新的字符串,否则输出源字符串。

void delete_substr(string &str,const string &substr)
{
     int m=0;    //用于作为是否找到substr的标识
     int flag=0;  //退出循环的标志,这是因为可能在str中存在多个substr
     while(flag==0)
     {
        m=str.find(substr);   //find函数的使用
        if(m<0)
        {
          flag=1;     //用于退出循环
          cout<<str;
        }
        else
       {
         str.erase(m,substr.size());   //目标是substr出现的地址,substr.size()表示从该地址开始需要删除的内容长度
       }
    }
}

int main()
{
   string str,substr;
   getline(cin,str);
   getline(cin,substr);
   delete_substr(str,substr);
}

如果存在相关问题,希望大家可以指点一二,谢谢!

posted @ 2015-07-13 10:11  elnino10  阅读(322)  评论(0编辑  收藏  举报