1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Символьный Массив В Си

Тема в разделе "С и С++", создана пользователем d3fToR, 19 фев 2012.

Статус темы:
Закрыта.
  1. d3fToR

    d3fToR Гость

    Репутация:
    0
    Нужно объявить массив, чтобы в каждом элементе массива с 0 по 25 были по одной цифре и букве ( вроде 0,1,2,3,4,5,6,...,A,B,C,...).
    Я знаю как объявить, допустим, эти же символы, как одно слово, а мне нужно разделение на ячейки, чтобы в 9 ячейке лежала цифра 9. Как такое провернуть ?)

    вот так провильно?
    Код:
    char nich={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O'};

    И ещё, мне нужно, чтобы введённое число с клавы записывалось поразрядно в массив, т.е, я ввожу, например 122, то массив выглядел бы так 0000 0000 0000 0122 ( вроде 16 знаков, если что поправьте )

    вот такой код должен быть?
    Код:
    scanf("%i",&mass);

    Заранее спасибо :)
     
  2. qqwertty

    qqwertty Гость

    Репутация:
    0
    Это неправильно, объявление должно быть char nich[] = {.........}
    это во-первых. Во-вторых, заполняйте лучше в цикле, чтобы размерность если что поменять можно было в одном месте. Мало ли для тестов потом понадобится.

    Насчет второго, если mass - это массив, то конечно же нет. В вашем случае надо считывать число (десятичное?), а потом уже разбивать его и записывать в массив. Или же считывать строку, тогда разбивать не надо, но нули в начало добавлять придется.
     
  3. Antech

    Antech Гость

    Репутация:
    0
    d3fToR
    Насчет первого пункта уже ответили: если Вы объявляете массив с инициализацией и размер берется из инициализации, то должна быть указана форма массива, а количество элементов определится автоматически. Т.е. у Вас не хватает квадратных скобок после имени массива.
    И насчет цикла верно заметили выше. Только нужно посмотреть ASCII-коды цифр 0...9 и букв A...O.

    Код:
    // Declarations
    int iChr=-1,iCode;
    char chr[26];
    // Digits 0...9 (ASCII 0x30...0x39)
    for (iCode=0x30;iCode<=0x39;iCode++)
    {
    iChr=iChr+1;
    chr[iChr]=iCode;
    };
    // Letters A...O (ASCII 0x41...0x4F)
    for (iCode=0x41;iCode<=0x4F;iCode++)
    {
    iChr=iChr+1;
    chr[iChr]=iCode;
    };

    По второму пункту можно воспользоваться itoa. Она вернет строку, которую можно потом скопировать в нужные элементы Вашего массива, или Вы просто можете сразу поместить строку в Ваш массив:
    Код:
    // Declarations
    integer num;
    char chr[26];
    // Read number from console and convert to a string
    scanf("%i",num); // Input integer number
    itoa(num,chr,10); // Convert to string (base 10 == decimal, use 16 for hex)
    Или Вы можете использовать в itoa промежуточную строку, а потом в цикле (или memcpy) скопировать символы в нужные элементы массива chr[].
     
  4. d3fToR

    d3fToR Гость

    Репутация:
    0
    Спасибо, правда не всё понятно :)) буду учиться)
     
Загрузка...
Похожие Темы - Символьный Массив Си
  1. gogi
    Ответов:
    2
    Просмотров:
    3.368
  2. Karatist
    Ответов:
    0
    Просмотров:
    20
  3. Karatist
    Ответов:
    4
    Просмотров:
    60
  4. D3ad ARbuZzz
    Ответов:
    0
    Просмотров:
    115
  5. никитан10
    Ответов:
    8
    Просмотров:
    96
Статус темы:
Закрыта.

Поделиться этой страницей