基本的に私は状況を発見したい: ユーザーが文字列を入力すると、「サラ」と言うことができ、誰かがサラという名前の各文字に対して操作を実行したい場合、文字列データ型に格納されます。どうすれば実行できますか? 最初に文字列から s を取得し、次に a を取得し、次に r を取得するなどです。組み込み関数またはより良い戦略はありますか? ありがとう。
3 に答える
4
: とラムダ関数を使用する 1 つの簡単な方法std::for_each
(C++11)
std::string str="sarah";
std::for_each( str.begin(), str.end(),
[](char &x){
//Play with x
}
);
それ以外の場合は、単純に for ループを使用します
for(size_t i=0;i<str.size();++i)
{
//Play with str[i];
}
または C++11 :-
for(char& x : str) {
//Play with x;
}
于 2013-10-24T18:34:35.097 に答える
1
これを使用できます:
範囲ベースの for ループを使用して、 a の文字を
std::string
ループします (これは C++11 のものであり、GCC、clang、および VC11 ベータの最近のリリースで既にサポートされています)。std::string str = "sarah"; for(char& c : str) { do_things_with(c); }
std::string
a の文字を反復子でループする:std::string str = "sarah"; for(std::string::iterator it = str.begin(); it != str.end(); ++it) { do_things_with(*it); }
std::string
昔ながらの for ループで a の文字をループする:for(std::string::size_type i = 0; i < str.size(); ++i) { do_things_with(str[i]); }
null で終わる文字配列の文字をループする:
char* str = "sarah"; for(char* it = str; *it; ++it) { do_things_with(*it); }
于 2013-10-24T18:35:08.533 に答える