0

这很可能是一个非常愚蠢的问题,但是在 C++ 中,字符串的数据类型是什么?我想让变量 x = "Slim Shady"。

我会将 x 声明为 int 吗?我尝试将其声明为字符,但是当我计算变量时,它只给出第一个字母。任何帮助,将不胜感激。

4

4 回答 4

4

您需要包含头文件字符串

#include <string>

然后你就可以使用 std::string

std::string x="Slim Shady"

http://en.cppreference.com/w/cpp/string/basic_string

您也可以不使用 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

“Slim Shady”是char[11]可转换为const char*. 您还可以使用它来初始化任何大于 11 的字符数组。请参阅:

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*第二个char[11]。这很容易解释,因为当将任何数组传递给函数时 - 它被转换为 const 指针。

于 2012-09-17T01:14:17.777 回答
1

你只是说:

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