【问题标题】:C++ : extracting string from between two symbolsC++:从两个符号之间提取字符串
【发布时间】:2016-03-23 14:43:57
【问题描述】:

我有字符串 String str = "我的年龄是我几岁?你几岁?";

我想只提取字符串“你多大了”并将其放在另一个变量中。

我该怎么做?

【问题讨论】:

标签: c++ string search


【解决方案1】:

你可以使用 substring 方法: http://www.cplusplus.com/reference/string/string/substr/

int first = str.find('?')
String ageStr = str.substr(first, str.find('?', first) - first);

这样你选择第一个问号位置和第二个问号位置之间的字符串部分...

【讨论】:

    【解决方案2】:
    #include <string>
    #include <iostream>
    using namespace std;
    string  GetStringInBetween(string Src,string FirstTag, string Secondag)
    {
        size_t FirstPos,SecondPos;
        string newstr="";
        FirstPos = Src.find(FirstTag);
        if (FirstPos != string::npos)
        {
            FirstPos++;
            SecondPos = Src.find(Secondag, FirstPos );
            if (SecondPos != string::npos)
            {
                newstr = Src.substr(FirstPos , SecondPos - FirstPos);
            }
        }
        return newstr;
    }
    int main()
    {
    
        string str = "?how old are you?";
        string nstr = GetStringInBetween(str, "?", "?");
        cout << nstr;
        return 0;
    }
    

    【讨论】:

      【解决方案3】:
      for(int i=0;i<strlen(str);i++)
      {
          if(str[i] != '?')
          {
              cout<<str[i];
          }
      }
      

      您可以添加您选择的任何符号来代替?

      【讨论】:

      • 你应该详细解释一下这段代码在做什么。
      猜你喜欢
      • 1970-01-01
      • 2021-12-15
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多