2016-10-26 21 views
2

文字列の先頭と末尾に句読点を削除する方法はありますか?文字列の先頭と末尾の句読点を削除するC++

"!wow!" "WOW" になると "できません"

+6

を。しかし、それは私が恐れているコードを必要とします。どのようにあなたの出番ですか? (私はあまりよくないと思っています、そうでなければあなたはここにいません)。おそらく*あなたの質問*に投稿し、問題がどこにあるのかを見ることができます。 – WhozCraig

+0

この投稿は利用できます:http://stackoverflow.com/a/25385766/3807729重複しているかどうかを確認できません。 – Galik

+0

インデックスの文字を消去しようとしましたが、インデックスが空であるためエラーが発生します。 –

答えて

8

とどまる "ことができない" あなたはboost::trim_ifであることを行うことができます。

std::string a = "!wow!"; 
boost::trim_if(a, [](char c) { return std::ispunct(c); }); 
std::cout << a << '\n'; 

出力:確かに

wow 
+0

ブーストに慣れていない。この文脈でそれを使うことについてもっと学ぶことができる記事はありますか?それとももっと普遍的な選択肢がありますか? –

+0

@ bfriz_96全く優雅なものはありません。あなたは['find_first_not_of'](http://en.cppreference.com/w/cpp/string/basic_string/find_first_not_of)と[' find_last_not_of'](http://en.cppreference.com/w/cpp/string/basic_string/find_last_not_of)それらの間の['substr'](http://en.cppreference.com/w/cpp/string/basic_string/substr)を取得してください – user4581301

+0

@ bfriz_96ブーストストリングアルゴスの概要/チュートリアルです: http://www.boost.org/doc/libs/1_62_0/doc/html/string_algo/usage.html –

関連する問題