我是c ++编程的新手。我需要一些帮助,
我有字符串: ----输入:“姓名:$$输入您的姓名2 $$” 我想在$$符号之间提取字符串,包括符号: ----输出:“$$输入你的名字2 $$”
请帮帮我。
答案 0 :(得分:-1)
Regular Expression非常有用。
C ++ 11 有regex库。
#include <string>
#include <regex>
std::string parse_string(const std::string& str) {
static const std::string REGEX_STR = R"__(\$\$(\w|\W)*\$\$)__";
std::regex regex(REGEX_STR);
std::smatch regex_iterator;
if (std::regex_search(str, regex_iterator, regex)) {
return regex_iterator.str();
}
return std::string("");
}
代码可以改进,但它应该是一个很好的起点。应该处理特定情况,例如:字符串中的更多$$*$$
等等......
注意:强>
R"__(\$\$(\w|\W)*\$\$)__";
是raw string,以便使正则表达式更具可读性。
答案 1 :(得分:-1)
只需在字符串中搜索分隔符:
std::string parse_string(const std::string& str, const std::string& delim) {
auto start = str.find(delim);
if (start == std::string::npos)
return "";
auto end = str.find(delim, start + delim.size());
if (end == std::string::npos)
return str.substr(start);
else
return str.substr(start, end - start + delim.size);
}