我是一名C ++程序员,他还在窝里,还没有找到我的翅膀。我正在编写一个Calendar程序,我发现,C ++不支持字符串类型。如何创建一个能够存储字符串的数组?
我想过创建一个枚举数据类型,作为数组类型。虽然它会起作用,对于我的日历,如果说我正在创建一个关于我班级学生姓名的数据库,它将无法工作。
http://prntscr.com/7m074w我得到了; "错误,'字符串'没有命名类型。"
答案 0 :(得分:1)
978
错误的信息,您可以按如下方式创建一个字符数组
that C++ does not support a string type.
否则,您可以依赖标准模板库容器std::string
如果你有C ++ 11编译器,你可以依赖std::array
答案 1 :(得分:1)
您可以按char name[length];
创建一个字符数组。
C ++也有一个数据类型字符串。您可以创建一个字符串数组并存储您喜欢的值。 here。
所以
例如 -
#include <iostream>
#include <string>
int main ()
{
//To Create a String
std::string s0 ("Initial string");
return 0;
}
答案 2 :(得分:1)
C ++标准库包含字符串类型std::string
。见http://en.cppreference.com/w/cpp/string/basic_string
标准库还提供固定大小的数组类型std::array
。见http://en.cppreference.com/w/cpp/container/array
但您可能还想了解动态大小的数组类型std::vector
。见http://en.cppreference.com/w/cpp/container/vector
该语言还包括对c-strings和c-arrays的遗留支持,您可以在优秀的C ++或C书中找到它们。见The Definitive C++ Book Guide and List
如何使用字符串数组/向量的示例:
#include <string>
#include <array>
#include <vector>
#include <iostream>
int main() {
std::array<std::string, 3> stringarray;
stringarray[0] = "hello";
stringarray[1] = "world";
// stringarray[2] contains an empty string.
for (size_t i = 0; i < stringarray.size(); ++i) {
std::cout << "stringarray[" << i << "] = " << stringarray[i] << "\n";
}
// Using a vector, which has a variable size.
std::vector<std::string> stringvec;
stringvec.push_back("world");
stringvec.insert(stringvec.begin(), "hello");
stringvec.push_back("greetings");
stringvec.push_back("little bird");
std::cout << "size " << stringvec.size()
<< "capacity " << stringvec.capacity()
<< "empty? " << (stringvec.empty() ? "yes" : "no")
<< "\n";
// remove the last element
stringvec.pop_back();
std::cout << "size " << stringvec.size()
<< "capacity " << stringvec.capacity()
<< "empty? " << (stringvec.empty() ? "yes" : "no")
<< "\n";
std::cout << "stringvec: ";
for (auto& str : stringvec) {
std::cout << "'" << str << "' ";
}
std::cout << "\n";
// iterators and string concatenation
std::string greeting = "";
for (auto it = stringvec.begin(); it != stringvec.end(); ++it) {
if (!greeting.empty()) // add a space between words
greeting += ' ';
greeting += *it;
}
std::cout << "stringvec combined :- " << greeting << "\n";
}
答案 3 :(得分:-2)
C ++ 的字符串类型为string
#include <string>
如果你不想使用它,你也可以使用char* name = "YourTextHere..."
或`char [length + 1] name =&#34; YourTextHere&#34;