C++でのシングルクォーテーション、ダブルクォーテーションの違い
2週間ほど前から趣味でC++を勉強し始めました。
C++で文字や文字列を囲うときに常にダブルクォーテーションを使っていたのですが、そのせいでコンパイルに失敗しました。
C++ではシングルクォーテーション、ダブルクォーテーションに明確な違いがあることを知ったので、メモしておきます。
環境
シングルクォーテーション
char型の文字を表すときには、シングルクォーテーション(')
で囲います。ちなみにchar型の場合は、半角文字1文字(1バイト)しか入れることができません。
using namespace std; int main() { char c_1 = 'a'; // OK char c_2 = "b"; // char型でダブルクォーテーション(")はエラーになる。 char c_3 = 'あ'; // 「あ」は全角文字で1バイトではない。エラーにはならず警告だけ表示される。「あ」の最初の1バイト分だけc_3に格納されているみたい。 return 0; }
ダブルクォーテーション
string型の文字列を表すときには、ダブルクォーテーション(")
で囲います。シングルクォーテーションは使えません。
#include <string> using namespace std; int main() { string s_1 = 'hoge'; // string型でシングルクォーテーション(')はエラーになる。 string s_2 = "fuga"; // OK string s_3 = "あ"; // OK return 0; }