Составить строку из цифр, соответствующих данным буквам - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пусть цифрам от 1 до 9 соответствуют буквы от А (а) до I(i). С клавиатуры вводится строка. Составьте новую строку из цифр, соответствующих только данным буквам (прописным и строчным), отсортированным по возрастанию. Допустимые символы - прописные и строчные латинские буквы. Пример: Исходная строка: SHiFROVkaOtSHPIonA Результат: 1168899(выделены буквы: HiFaHIA) Пожалуйста, помогите с кодом программы или хотя бы напишите примерный алгоритм последовательности действий.и, буду очень благодарна любой помощи!

Решение задачи: «Составить строку из цифр, соответствующих данным буквам»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. #define CHARS_WATCHED (9)
  5.  
  6. int main(void) {
  7.     char buf[BUFSIZ];
  8.    
  9.     while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
  10.         int counters[CHARS_WATCHED] = { 0 }, i, j;
  11.         char * ptr = buf;
  12.        
  13.         for ( ; *ptr; ++ptr ) {
  14.             char c = toupper(*ptr);
  15.             if ( c >= 'A' && c < 'A' + CHARS_WATCHED )
  16.                 counters[c - 'A']++;
  17.         }
  18.        
  19.         printf("Result: ");
  20.         for ( i = 0; i < CHARS_WATCHED; ++i )
  21.             for ( j = 0; j < counters[i]; ++j )
  22.                 printf("%d", i + 1);
  23.        
  24.         printf("\n");
  25.     }
  26.    
  27.     return 0;
  28. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: и .
  2. Определение количества наблюдаемых символов: #define CHARS_WATCHED (9).
  3. Объявление переменных:
    • buf: буфер для ввода строки, размер которого определяется макросом BUFSIZ.
    • counters: массив счетчиков символов, инициализированный нулями.
    • i, j: индексы для перебора массива счетчиков и вывода результата.
  4. Ввод строки с помощью fgets().
  5. Преобразование символов в верхний регистр с помощью toupper().
  6. Увеличение счетчика символов в соответствующем массиве.
  7. Вывод результата:
    • Для каждого символа в строке выводится его порядковый номер, увеличенный на 1.
  8. Ввод символа новой строки с помощью printf() и fgets().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы