Как записать русские буквы в массив?

109
01 августа 2019, 16:20

char arr[] = {'а', 'б', 'в', 'г'} когда я пишу такой массив выдаёт ошибку "ошибка: excess elements in char array initializer" что нужно сделать что бы исправить? Я писал не консольное приложение в Qt (если это нужно)

Answer 1

Ваш исходный код имеет какую-то кодировку, символы кириллицы пишутся в код в этой кодировке. Запись char arr[] = {'а', 'б', 'в', 'г'} подразумевает, что вы набираете код в однобайтной кодировке, и инициализируете байтовый массив кодами букв кириллицы именно в этой кодировке, в то время когда современные IDE используют по умолчанию юникод (например utf-8), отсюда и ошибка компиляции. Если вам действительно необходим массив символов в юникоде, то на Qt можете инициализировать его так:QChar arr[] = {u'а', u'б', u'в', u'г'}

Answer 2

Тип char не поддерживаёт юникод. Поэтому используй тип wchar_t.

READ ALSO
строка из собственной программы [закрыт]

строка из собственной программы [закрыт]

Пытаюсь получать строку из maincpp

123
Избавиться от QSignalMapper

Избавиться от QSignalMapper

Мне нужно что бы несколько объектов вызывали один слот, и можно было понять, какой объект вызвал слотВ данном примере я попробовал использовать...

121