これはおそらく非常にばかげた質問ですが、C++ では、文字列のデータ型は何ですか? 変数 x = "Slim Shady" にしたいです。
x を int として宣言しますか? char として宣言しようとしましたが、変数を数えると、最初の文字しか表示されません。どんな助けでも大歓迎です。
ヘッダーファイル文字列を含める必要があります
#include <string>
次に、 std::string を使用できるようになります
std::string x="Slim Shady"
http://en.cppreference.com/w/cpp/string/basic_string
std::strings を使用したくない場合は、std::strings を使用することもできません。
Char 配列または char ポインター (C 文字列) を使用できます。
char x[]="Slim Shady";
また
char* x="Slim Shady";
auto キーワードは C++0x の機能です。C++ の基礎を学ぶまでは、これには近づかないようにしてください。
std::string
が最善の策です。auto
ただし、 のようにも使用できますauto x = "Slim Shady!";
。これは、式を使用するために型を理解する必要がないことを意味します。
「SlimShady」は、char[11]
に変換可能な型の定数リテラルですconst char*
。11より大きいchar配列の初期化にも使用できます。参照:
char a[] = "Slim Shady";
char a[11] = "Slim Shady";
const char* a = "Slim Shady";
char a[12] = "Slim Shady";
この小さなコードを参照してください:
#include <typeinfo>
#include <iostream>
template <class T>
void printTypeName(T t)
{
std::cout << typeid(T).name() << std::endl;
}
int main() {
printTypeName("Slim Shady");
printTypeName<decltype("Slim Shady")>("Slim Shady");
}
(gccで)マングルされた名前を取得します:
PKc
A11_c
私が知っていることから-最初はconst char*
2番目はchar[11]
です。何かの配列を関数に渡すとき、これはconstポインターに変換されるため、これは簡単に説明できます。
ただの意味ですか:
std::string x = "Slim Shady";