修剪字符串

时间:2011-11-07 22:21:12

标签: windows visual-c++

我正在使用Windows 7和Visual C ++。我有一个控制台程序,我试图在开始和结束时修剪一个字符串。如果没有MFC,TrimLeft()TrimRight()似乎无法运作。这是我到目前为止所拥有的。

pBrowser->get_LocationURL(&bstr);
wprintf(L"  URL: %s\n\n", bstr);
SysFreeString(bstr);

std::wstring s;
s = bstr;
s.TrimStart("http://");
s.TrimEnd("/*");
wprintf(L"  URL: %s\n\n", s);

我试图摆脱这个:

  

“http://www.stackoverflow.com/questions/ask”

到此:

  

“www.stackoverflow.com”

2 个答案:

答案 0 :(得分:4)

TrimStart / End通常返回一个值,因此你必须将's'分别设置为等于s.TrimStart()和s.TrimEnd()的值。

试,

s = s.TrimStart("http://");
s = s.TrimEnd("/*");

答案 1 :(得分:1)

您应该按顺序使用find / rfind(右查找 - 右查找)和substr(子字符串)来执行您需要执行的操作。 1)使用find找到第一个模式的索引(例如http://) - 你已经知道它的长度,将它作为修剪字符串的原点添加到起始索引 2)使用find

查找结束模式的最后一个索引

3)使用substr

创建从origo到end的子字符串

这些方法都在std :: string