2011-11-07 218 views
0

我使用的是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」

回答

1

您應該使用find/rfind(右找到 - 從右邊找到),並依次做你需要做的substr(子字符串)。 1)用find找到第一個模式的索引(例如http://) - 你已經知道它的長度,把它加到起始索引中作爲你的修剪後的字符串的起點 2)找到結尾的最後一個索引與模式發現

3)創建從ORIGO使用substr

這些方法都在的std :: string

+0

謝謝。足夠喲讓我開始! –

4

TrimStart/End通常會返回一個值,因此您必須將s設置爲分別等於s.TrimStart()和s.TrimEnd()的值。

嘗試,

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

結束的子但就是TrimStart和TrimEnd要走的路?我只是想修剪上面所述的字符串的開始和結束。我在VBA中很容易做到這一點,我簡直不敢相信這是一個野獸!就像我說的這是一個簡單的控制檯應用程序,我不想MFC。謝謝。 –