2012-01-24 3 views
3

Это домашнее задание ... распечатка списка IS домашнее задание, и это отлично работает, iscntrl() и материал Array - это через 6 недель и дающий мне печаль.символьные строки в массивы

Я хочу создать массив, заполненный первыми 32 TLA таблицы Ascii, так что, когда я распечатываю диаграмму столбца/строки кода Decimal в Ascii, я могу использовать iscntrl(), чтобы отметить, что это непечатаемый персонаж. Вместо этого я хочу захватить следующий TLA в массиве и напечатать это вместо неграфического символа.

У меня есть iscntrl(), работающий нормально. Просто не могу понять массив. Все примеры в книгах, которые у меня есть, и онлайн, хотят демонстративно захватывать входные данные от пользователя и бросать его в массив. Я хочу дать массиву список в начале кода и извлечь из него.

Может ли кто-нибудь дать мне хорошую ссылку для того, что мне нужно, или просто рассказать мне, как сделать весь процесс?

У меня есть 32 элемента с тремя буквами, и мне нужно заполнить массив и вытащить их через для цикла.

Спасибо.

ответ

4

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

const char *ControlCharacterNames[] = { 
    "NUL", 
    "SOH", 
    "STX", 
    "ETX", 
    // etc 
}; 

Затем, вы можете получить доступ к ControlCharacterNames как массив в коде.

+0

спасибо SOOOO много! Теперь я не буду спать всю ночь, вытаскивая волосы. –

3

http://publications.gbdirect.co.uk/c_book/chapter6/initialization.html, глава "6.7.2. Дополнительная инициализация".

Короче говоря, вы, вероятно, нужно что-то вроде

char *TLAs[] = { "TL1", "TL2", "TL3", "FYI", "WTH", /* ...and so on...*/ }; 

, а затем потяните, что вам нужно, используя его индекс

printf(TLAs[3]); // print "FYI", the 4th TLA 

Надежда Я понял ваш вопрос правильно.

+0

Хорошо, мне нужно начать набирать этот материал быстрее. – zrxq

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