C++:从两个符号之间提取字符串

C++ : extracting string from between two symbols

本文关键字:符号 两个 之间 提取 字符串 C++      更新时间:2023-10-16

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

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

我该怎么做?

您可以使用子字符串方法:http://www.cplusplus.com/reference/string/string/substr/

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

通过这种方式,您可以选择字符串中第一个问号位置和第二个问号位置之间的部分。。。

#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;
}
for(int i=0;i<strlen(str);i++)
{
    if(str[i] != '?')
    {
        cout<<str[i];
    }
}

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