Я новичок в C++, но очень хорошо знаком с Python. Тривиальные задачи в Python, похоже, намного сложнее в C++. Я пытаюсь сделать простую игру, где на экране печатается слово на иностранном языке, пользователь догадывается о значении, если правильно, что ему присваивается точка, и продолжайте угадывать, что значение других номеров, напечатанных на экране. Проблема, с которой я сталкиваюсь, что для курса, который я принимаю, нам не разрешено использовать только массивы символов. Причина этого не объясняется инструктором.Назначение значений массивам символов внутри массива структуры в C++
В Python, я хотел бы создать кортеж строк для чисел иностранных слов:
foreignWords = ('een', 'twee', 'drie'....)
индекс 0 будет слово для одного на голландском языке, индекс 1 будет слово для двоих на голландском языке, и т.д. Я бы использовал функцию для случайного выбора числа от 0 до длины иностранных слов, печати на экране и т. Д. Очень просто сделать.
Я думал, что могу просто создать массив структур и strcopy массивы char в массив структур.
struct numbers
{
char numberWord[7];
};
int main()
{
numbers numberChoices[10];
strcpy(numberChoices[0].numberWord, 'een');
strcpy(numberChoices[1].numberWord, 'twee');
strcpy(numberChoices[2].numberWord, 'drie');
strcpy(numberChoices[3].numberWord, 'vier');
strcpy(numberChoices[4].numberWord, 'vijf'):
strcpy(numberChoices[5].numberWord, 'zes');
etc.
Это не работает. Он выдает ошибку:
string.h:129:14: error: initializing argument 2 of ‘char* strcpy(char*, const char*)’ [-fpermissive]
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
^
Однако, если я создаю для цикла и ввести массив символов с помощью CIN >> матричная структура будет хранить свои записи, и они могут быть вызваны по индексу.
По существу, то, что я хотел бы сделать, это сделать массив массивов char таким образом, чтобы индекс мог вернуть значение и тривиально отслеживать числовое значение слова (numberChoices [i] .numberWord, i + 1 = числовое значение печатного слова). Я не знаю, подходит ли этот подход или нет, но я стараюсь быть эффективным, потому что массив структуры будет называться довольно немного, чтобы прочитать то, что хранится в памяти, сохранить это значение в новой переменной и манипулировать ссылочным символом массив, удаляя символы случайным образом, и пользователь должен угадать, какое значение имеют печатные слова.
Каков правильный способ создания массива массивов символов, где элементы массива char жестко закодированы?
В C++ строки заключены в двойные кавычки: '' foo "'. Одиночные кавычки предназначены только для символов. –
В C++ вы использовали бы ['std :: vector'] (http://en.cppreference.com/w/cpp/container/vector) в [' std :: string'] (http: // ru. cppreference.com/w/cpp/string/basic_string). –
Кроме того, один символ 'char' является * единственным символом' char' *, он может содержать только один символ, а не строку. –