将字符串以某个分隔符分隔

话不多说,直接上代码:

// 将str字符串以“division”字符分隔,最终结果生成多个子字符串并保存到vStr中。
void StringSplit(const std::string& str, std::vector<std::string>& vStr, const char& division)
{
	try
	{
		int startPos = 0;
		int endPos = std::string::npos;

		startPos = str.find_first_not_of(division);
		while (startPos != std::string::npos)
		{
			endPos = str.find_first_of(division, startPos);
			if (endPos != std::string::npos)
			{
				std::string strSplit = str.substr(startPos, (endPos - startPos));
				vStr.push_back(strSplit);
			}
			else
			{
				std::string strSplit = str.substr(startPos);
				vStr.push_back(strSplit);
			}
			startPos = str.find_first_not_of(division, endPos);
		}

	}
	catch (const std::exception& e) {
		std::cout << "parse error:" << str << std::endl;
	}
}


int main()
{
    std::string str = "123@456@789";
    std::vector<std::string> vResult;
    StringSplit(str, vResult, '@');
    string data1 = vResult[0];
    string data2 = vResult[1];
    string data2 = vResult[2];
}

猜你喜欢

转载自blog.csdn.net/qq_23350817/article/details/106763245