zoukankan      html  css  js  c++  java
  • 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);
    }

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

  • 相关阅读:
    【设计模式】 五大原则
    RFC
    Linux虚拟服务器--LVS
    Git fast forward提交
    Fighting regressions with git bisect---within git bisect algorithm
    Git bare repo with multiple branches
    英特尔和Red Hat合作实现Gnome桌面的Wayland支持
    如何成为一个Linux内核开发者
    Terminal emulator
    bootstrap基础学习【网格系统】(三)
  • 原文地址:https://www.cnblogs.com/elninohjh/p/4642189.html
Copyright © 2011-2022 走看看