Скорее всего, это очень глупый вопрос, но в C ++, какой тип данных для строки? Я хочу сделать переменную x = «Slim Shady».
Я объявил бы x как int? Я попытался объявить его как символ, но когда я cout переменная, он дает только первую букву. Любая помощь будет оценена.
Вы должны включить строку заголовочного файла
#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 ++
std::string
это лучшая ставка. Но вы также можете использовать auto
, как в auto x = "Slim Shady!";
, Это означает, что вам не нужно выяснять тип, чтобы использовать выражение.
«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]
, Это легко объяснить, поскольку при передаче массива чего-либо в функцию — он преобразуется в константный указатель.
Вы просто имеете в виду:
std::string x = "Slim Shady";