这很可能是一个非常愚蠢的问题,但在C++中,字符串的数据类型是什么?我想让变量x =“Slim Shady”。字符串的数据类型是什么?
我会声明x为int吗?我试图将它声明为char,但是当我关闭变量时,它只会给出第一个字母。任何帮助,将不胜感激。
这很可能是一个非常愚蠢的问题,但在C++中,字符串的数据类型是什么?我想让变量x =“Slim Shady”。字符串的数据类型是什么?
我会声明x为int吗?我试图将它声明为char,但是当我关闭变量时,它只会给出第一个字母。任何帮助,将不胜感激。
你只是说:
std::string x = "Slim Shady";
你需要包含头文件字符串
#include <string>
然后,你将能够使用的std :: string
std::string x="Slim Shady"
http://en.cppreference.com/w/cpp/string/basic_string
你也不能使用std ::字符串,如果你不想使用它们虽然它们是你最好的选择
可以使用字符阵列或字符指针(C-字符串)
char x[]="Slim Shady";
或
char* x="Slim Shady";
自动关键字是一个C++ 0X特征。您应该远离它,直到您学习C++基础知识
“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");
}
你得到(海合会)mangled名称:
PKc
A11_c
从我所知道的 - 第一个是const char*
第二个是char[11]
。这很容易解释,因为当传递任何数组到函数 - 它被转换为const指针。
当然这是在教程中介绍的..某处? (不,一个字符串更肯定*不是*整数。) – 2012-09-16 23:15:29
'std :: string'就是你使用的。 – squiguy
你如何在你的代码中使用它? std :: string x?另外,如果你说使用命名空间标准,你可以只说字符串x? – masonc15