2011-11-07 9 views
0

私はWindows 7とVisual C++を使用しています。私はコンソールプログラムを持っており、最初と最後で文字列をトリムしようとしています。 TrimLeft()TrimRight()はMFCなしで​​は動作しないようです。ここまで私がこれまで持っていたことがあります。これに文字列のトリミング

"http://www.stackoverflow.com/questions/ask"

私はこれから行くしようとしている

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); 

"www.stackoverflow.com"

答えて

1

あなたはfind/rfindを使用する必要があります(右見つける - 右から見つける。)と、あなたがする必要が何をすべきかの順序でsubstr(サブ文字列)。 1)findで最初のパターンのインデックス(http://など)を探します。すでに長さを知っています。トリムされた文字列の始点として開始インデックスに追加してください。 2)

3見つけるのパターン)これらのメソッドは、すべてのSTDであるsubstr

を使用して最後までオリゴからサブストリングの作成::文字列

+0

ありがとうございます。十分に私を始めてください! –

4

TrimStart/Endは通常は値を返すので、s.TrimStart()とs.TrimEnd()の値と同じになるようにsを設定する必要があります。

試して、

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

しかしTrimStartとTrimEndが移動するための方法ですか?私は単純に上記のように文字列の最初と最後を整えたいと思う。私はこれをVBAで簡単にやったことがあります。私はこれがそのような獣だとは信じられません!私はそれが単純なコンソールアプリだと言ったように、私はMFCをしたくないです。ありがとうございました。 –