string s;
cin>>s;
仮定するS = "StackOverflowの"文字列内の1文字のデータ型は配列とは何ですか?
我々はs[3]
にアクセスする場合は、今、それはs[3]
'c'
または"c"
なります'c'
を配る必要がありますか?
のように、それはcharデータ型または文字列データ型ですか?
string s;
cin>>s;
仮定するS = "StackOverflowの"文字列内の1文字のデータ型は配列とは何ですか?
我々はs[3]
にアクセスする場合は、今、それはs[3]
'c'
または"c"
なります'c'
を配る必要がありますか?
のように、それはcharデータ型または文字列データ型ですか?
std::string
は組み込み型ではないため、のs[3]
は、文字列テンプレートでこの演算子を定義するメンバー関数への呼び出しです。
あなたはreference page for operator []
をルックアップすることによってタイプを見つけることができます。
は、指定された場所posに文字への参照を返します。
あなたが場所3から始まる長さ1のstd::string
を探しているならreference
およびドキュメントからconst_reference
は、「メンバータイプ」std::basic_string<CharT>
template.
のセクションを参照してくださいタイプを検索するには、代わりにsubstr
を使用します。
s.substr(3, 1); // This produces std::string containing "c"
おそらく、親ページで戻り値の型 "参照"を調べ、テンプレートの使用法を解くことで "char"を得る方法を説明することもできます。 – aschepler
@ascheplerありがとう! – dasblinkenlight
オペレータ[]
がstd::string
char& operator[] (size_t pos);
const char& operator[] (size_t pos) const;
ためにオーバーロードされるように、それは文字への参照を返すS [3] 'C' または "C" になりますか?
文字 'c'ではなく、文字列 'c'です。
std::string
はchar
のようなネイティブタイプではありませんが、の配列を含むラッパーを使用して文字列を作成します。
std::string
単に従って、Cアレイオペレータは[]指定されたインデックスでchar
を返すためにオーバーロード:
が
s[3]
'c'
又は"c"
だろうか?回答:
'c'
あなたはいつもそれをKOWする[ドキュメント](http://en.cppreference.com/w/cpp/string/basic_string/operator_at)を確認することができます。 –