【问题标题】:Array strings C++数组字符串 C++
【发布时间】:2020-04-25 16:36:27
【问题描述】:

我不记得如何在 C++ 中做到这一点:

#include <iostream>
#include <conio.h>
#include <string.h>

int main(){
    char categorias[3][20];
    /*char pais[3][20];
    char movimiento[3][50];
    char obras[100][50]; */

    categorias[0]="Alta";
    categorias[1]="Media";
    categorias[2]="Baja";
}

这会引发此错误:19 15 C:\Users\dell\Desktop\Subasta.cpp [Error] incompatible types in assignment of 'const char [5]' to 'char [20]';

很久以前我不使用 C++,我无法解决问题。

【问题讨论】:

  • 使用std::string 而不是char[],你的生活会轻松很多。
  • 这不是字符串数组,而是字符数组。要复制到字符数组,请使用 strcopy 或其他东西。不过,我建议使用std::array&lt;std::string,3&gt; categorias 而不是char[3][20]
  • 请注意,Dev C++ 是 IDE 而不是编译器。我假设您使用的是某个版本的 mingw。
  • main(){ in c++ 你不应该在main之前省略int
  • categorias[0]="Alta"; c 字符串不可分配。将char categorias[3][20]; 替换为std::string categorias[3]; 即可完成分配。

标签: c++ arrays string


【解决方案1】:

使用标准库中的 C++ 抽象和容器:

int main()
{
    using namespace std::string_literals;

    auto categorias = std::vector{"Alta"s, "Media"s, "Baja"s};

    // Or if you know you have a fixed number of categories:
    auto categorias = std::array{"Alta"s, "Media"s, "Baja"s};
}

【讨论】:

    【解决方案2】:

    将字符串文字复制到 char 数组中

    strcpy(categorias[0], "Alta");
    

    【讨论】:

      猜你喜欢
      • 2020-12-02
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      相关资源
      最近更新 更多