#c #arrays #initialization
#c #массивы #инициализация
Вопрос:
У меня возникли некоторые проблемы с инициализацией этого массива символов. Предполагается, что это массив размером 5×5, инициализированный заданными значениями. Когда я запускаю программу, в ошибке компилятора указывается «Символьная константа слишком длинная для ее типа». Я еще не добрался до указателей, поэтому я пока не должен их использовать. Однако я буду создавать методы для управления 2d-массивом, но я застрял здесь
#include <iostream>
using namespace std;
int main()
{
char my_array [5][5];
my_array = 'sweet','heart','egrit','clone','odor';
//cout<<"Hello World";
return 0;
}
Комментарии:
1. Для начала, каждый отдельный массив должен содержать шесть символов, а не пять. Вы забываете завершающий
байт. Затем в строках C используются двойные, а не одинарные кавычки. Наконец, в вашем учебнике по C должно быть много примеров инициализации массивов; есть ли что-то конкретное в объяснении или примерах вашего учебника, о которых вам неясно?
2. @SamVarshavchik — вам нужен только
0
-terminator, если вы собираетесь обрабатывать эти последовательности символов, такие как C-строки (включая инициализацию этого массива строками).3. Преобразовать массив символов в массив строк
4. Я использую девятое издание «Начало работы с C «. Он охватывает многомерные массивы, но я ничего не уловил в массивах типа данных char. Я помню, как переходил к нулевому завершающему символу в курсе udemy, который я купил, поэтому я вернусь и рассмотрю это. Школа в настоящее время не является очной, поэтому самообучение было непростой задачей. Намного проще понять концепции в среде класса, но, конечно, это можно сделать самостоятельно.
Ответ №1:
То, что вы ищете, это:
char my_array [5][6] = { "sweet", "heart", "egrit", "clone", "odor" };
Обратите внимание, что второе измерение должно быть 6, а не 5, чтобы nul
в каждой строке оставалось место для завершения.
Ответ №2:
Если вам просто нужно инициализировать 2D-массив, вы можете сделать это следующим образом:
char my_array[5][5] = {
{'s', 'w', 'e', 'e', 't'},
{'h', 'e', 'a', 'r', 't'},
{'e', 'g', 'r', 'i', 't'},
{'c', 'l', 'o', 'n', 'e'},
{'o', 'd', 'o', 'r', '?'},
};