2017-02-17 15 views
0

Мне нужно скопировать содержимое конкретной строки CryptoTables 2D-массив.Копирование содержимого многомерного массива в один массив

Вот 2D массив: -

#define CRYPTOENTRIES 10 
unsigned char CryptoTables [CRYPTOENTRIES][7]= {"Sgehd", 
               "Fshdj", 
               "Hdbdh", 
               "Gshsi", 
               "Hiufs", 
               "Rtygd", 
               "Tyygf", 
               "Gfftn", 
               "Ffyhs", 
               "Fghhx"}; 

Как скопировать содержимое любого конкретного расположения выше данного 2D массива в другой массив одной строкой (char array[10];)?

Например, если мне нужно скопировать 3-ю строку в CryptoTables i.e Hdbdh в другую строку массива.?

+2

'strcpy (array, CryptoTables [2]);'. – mch

ответ

0

Вы можете получить доступ к каждой строке 2D массива foo как foo[i].
Так скопировать 3-ю строку CryptoTables вы можете использовать этот код:

char bar[7]; 
strcpy(bar, CryptoTables[2]); 

массив bar должен быть достаточно большим, чтобы вместить строку, на который указывает CryptoTables[2]включая завершающий \0 байт.

-1

Все ваши данные состоят из 5 символов, поэтому новый массив должен быть char arr[6] (5 символов + нулевой байт-терминатор). Если вы хотите скопировать, просто адрес разыскиваемой строки: CryptoTables[2] (третье местоположения), и использовать strncpy, чтобы скопировать его arr - читайте об этом здесь:

http://fresh2refresh.com/c-programming/c-strings/c-strncpy-function/

+1

'strcpy' скопирует строку, указанную' CryptoTables [2] ', включая завершающий нулевой байт' \ 0', в буфер, на который указывает 'arr'. Но так как длина 'arr' равна' 5', это приведет к переполнению буфера – rootkea

+0

Вы правы, не успели написать его. Добавление –

 Смежные вопросы

  • Нет связанных вопросов^_^