如何使用字符串数组

时间:2015-06-26 22:16:33

标签: c++ arrays

我是一名C ++程序员,他还在窝里,还没有找到我的翅膀。我正在编写一个Calendar程序,我发现,C ++不支持字符串类型。如何创建一个能够存储字符串的数组?

我想过创建一个枚举数据类型,作为数组类型。虽然它会起作用,对于我的日历,如果说我正在创建一个关于我班级学生姓名的数据库,它将无法工作。

http://prntscr.com/7m074w我得到了; "错误,'字符串'没有命名类型。"

4 个答案:

答案 0 :(得分:1)

978 

错误的信息,您可以按如下方式创建一个字符数组

that C++ does not support a string type.

否则,您可以依赖标准模板库容器std::string

如果你有C ++ 11编译器,你可以依赖std::array

答案 1 :(得分:1)

您可以按char name[length];创建一个字符数组。 C ++也有一个数据类型字符串。您可以创建一个字符串数组并存储您喜欢的值。 here

所以

  1. 使用字符数组
  2. 使用字符串数据类型
  3. 例如 -

    #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";
}

现场演示:http://ideone.com/LWYevW

答案 3 :(得分:-2)

C ++ 的字符串类型为string #include <string> 如果你不想使用它,你也可以使用char* name = "YourTextHere..."或`char [length + 1] name =&#34; YourTextHere&#34;