私は文字列を持っていますString s = "B"
に変換したいchar cs = 'B'
どのようにできるのか?
Astd::stringは、単一の文字にアクセスするための配列と同じようにアクセスできます。
char cs = s[0];
ただし、配列と同じように、範囲外のインデックスで使用できることに注意してください。
stringインデックスから文字を取得
std::string s = "B"; // It has at least one character
char cs = s[0];
にをキャストすることはできません。また、実際に変換することもできません。定義上、文字列には0個以上のsが含まれているため、何をしたいのかはよくわかりません。stringcharchar
たとえば、もし持っていたら何を期待しますString s = "BC"か?'B'?'C'?(と4のオーバーフローした合計)?他に何かありますか?'B''C'
代わりに、文字列の最初の文字を取得する場合は、次のようにして配列と同じようにアクセスできます。
char cs = s[0];
文字列に少なくとも1つの文字が含まれていることを確認するために、最初に何らかの境界チェックを実行する必要があることに注意してください。
以下は、の最初の文字s(または文字列が空の場合は0)を取得します。
std::string s = ...;
char cs = 0;
if (!s.empty()) {
cs = s[0];
}