我想在字符串的开始处添加^
,并在末尾添加$
。C++在开始处和结尾处添加字符串
std::string s1 (".V/.B/.R/");
是最好的使用方法吗?
s1.append(s1.begin(),"^");
s1.append(s1.end(),"$");
感谢您的帮助。
我想在字符串的开始处添加^
,并在末尾添加$
。C++在开始处和结尾处添加字符串
std::string s1 (".V/.B/.R/");
是最好的使用方法吗?
s1.append(s1.begin(),"^");
s1.append(s1.end(),"$");
感谢您的帮助。
这将是insert
而非append
,但除此之外,它似乎确定。
一个更简单的方法是
s1 = '^' + s1 + '$';
用于处理char文字的+1 – ipc 2012-03-21 11:52:04
你不能以这种方式使用std::string::append()
:
s1.insert(0, "^");
s1.append("$");
你的例子是行不通的,因为他们没有使用任何的stl::string::append
overloads,您可以创建一个新的字符串和单独添加的元素,即
std::string FormatText(const std::string& rstrInput)
{
std::string strOutput = "^";
strOutput += rstrInput ;
strOutput += "$";
return strOutput; // RVO will eliminate copying
}
但是可能有很多方法可以做到这一点,追加可能是最简单的。
std::string strResult = "^" + strValue + "$";
你也可以使用stringstreams ..
std::stringstream ss;
ss << "^" << strValue << "$";
std::string strResult = ss.str();
... printf类型串成形等等等等。在何种意义上
什么都没有提及他可能的意图的“insert”? – 2012-03-21 21:34:34
“最佳”?性能?清晰? – leftaroundabout 2012-03-21 11:43:44
如果很清楚@leftaroundabout – CodersSC 2012-03-21 11:44:44
的性能真的会很好,至少在C++ 11中(感谢移动语义),思考它,'^“+ strValue +”$“'的好方法可能不会甚至比C型手动内存分配的性能明显更差,所以我肯定会这样做。 – leftaroundabout 2012-03-21 11:50:42