0

これはおそらく非常にばかげた質問ですが、C++ では、文字列のデータ型は何ですか? 変数 x = "Slim Shady" にしたいです。

x を int として宣言しますか? char として宣言しようとしましたが、変数を数えると、最初の文字しか表示されません。どんな助けでも大歓迎です。

4

4 に答える 4

4

ヘッダーファイル文字列を含める必要があります

#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++ の基礎を学ぶまでは、これには近づかないようにしてください。

于 2012-09-16T23:26:38.307 に答える
3

std::stringが最善の策です。autoただし、 のようにも使用できますauto x = "Slim Shady!";。これは、式を使用するために型を理解する必要がないことを意味します。

于 2012-09-16T23:19:49.853 に答える
2

「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ポインターに変換されるため、これは簡単に説明できます。

于 2012-09-17T01:14:17.777 に答える
1

ただの意味ですか:

std::string x = "Slim Shady";
于 2012-09-16T23:16:24.657 に答える