find函数可以在一个目标字符串中查找子字符串,返回值为子字符串在目标字符串中的起始位置
substr通过起始位置和长度可以截取一段字符串
将find和substr结合可以用于分割字符串
#include <iostream>
#include <string>
#include <tuple>
using namespace std;
tuple<string, string> splitKeyValue(const string& str, const string& splitStr)
{
auto findSplitPos = str.find(splitStr);
if(findSplitPos == string::npos)
{
return make_tuple("", "");
}
string&& key = str.substr(0, findSplitPos);
string&& value = str.substr(findSplitPos + splitStr.length(), str.length() - findSplitPos - splitStr.length());
return make_tuple(key, value);
}
int main()
{
string s = "ABC.123.(DEFG)";
string key, value;
tie(key, value) = splitKeyValue(s, ".123.");
cout<<key<<"="<<value<<endl;
return 0;
}
运行程序输出:
ABC=(DEFG)