次のような配列にいくつかのテキスト値を追加しようとしています
- 何らかの値 1
- いくつかの値 2
- 何らかの値 3
- 等..
これが私が従う手順です:
char values_array[3][80];
values_array[0][80] = "Rock and Rolla";
cout << values_array[0] << endl;
次のエラーが表示されます。
invalid conversion from `const char*' to `char'
次のような配列にいくつかのテキスト値を追加しようとしています
これが私が従う手順です:
char values_array[3][80];
values_array[0][80] = "Rock and Rolla";
cout << values_array[0] << endl;
次のエラーが表示されます。
invalid conversion from `const char*' to `char'
エラー メッセージには、問題の内容が正確に記載されています。const char*
割り当ては、文字列文字列リテラルの型である を の型であるchar
に割り当てようとしていvalues_array[0][80]
ます。誤った即時応答は、次のように変更されます。
values_array[0] = "Rock and Rolla";
しかし、配列を割り当てることができないため、これも正しくありません。文字列リテラルをコピーするか、std::vector<std::string>
代わりにa を使用することをお勧めします。
std::vector<std::string> values;
values.push_back("Rock and Rolla");
std::cout << values[0] << std::endl;
a を使用するstd::vector<std::string>
と、格納できる文字列の数に対するハードコーディングされた制限と、文字列リテラル (または他の文字列) を配列要素にコピーする際の潜在的なバッファー オーバーランの問題が解消されます。
タイプが で"Rock and Rolla"
あるchar[]
をに代入しようとしています。おそらくあなたが望むのは:values_array[0][80]
char
char values_array[3][80]
strcpy(values_array[0], "Rock and Rolla");
それにもかかわらず、 C++ で文字列を表すstd::string
代わりに使用する必要があります。char*
コードは次のようになります。
std::string values_array[3];
values_array[0] = "Rock and Rolla";