-5

私は文字列を持っていますString s = "B"

に変換したいchar cs = 'B'

どのようにできるのか?

4

4 に答える 4

2

Astd::stringは、単一の文字にアクセスするための配列と同じようにアクセスできます。

char cs = s[0];

ただし、配列と同じように、範囲外のインデックスで使用できることに注意してください。

于 2013-03-25T07:18:18.930 に答える
2

stringインデックスから文字を取得

std::string s = "B"; // It has at least one character

char cs = s[0];
于 2013-03-25T07:18:23.387 に答える
2

にをキャストすることはできません。また、実際に変換することもできません。定義上、文字列には0個以上のsが含まれているため、何をしたいのかはよくわかりません。stringcharchar

たとえば、もし持っていたら何を期待しますString s = "BC"か?'B''C'?(と4のオーバーフローした合計)?他に何かありますか?'B''C'


代わりに、文字列の最初の文字を取得する場合は、次のようにして配列と同じようにアクセスできます。

char cs = s[0];

文字列に少なくとも1つの文字が含まれていることを確認するために、最初に何らかの境界チェックを実行する必要があることに注意してください。

于 2013-03-25T07:19:53.333 に答える
1

以下は、の最初の文字s(または文字列が空の場合は0)を取得します。

std::string s = ...;
char cs = 0;
if (!s.empty()) {
  cs = s[0];
}
于 2013-03-25T07:19:45.773 に答える