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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
 
#define CHARS_WATCHED (9)
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        int counters[CHARS_WATCHED] = { 0 }, i, j;
        char * ptr = buf;
        
        for ( ; *ptr; ++ptr ) {
            char c = toupper(*ptr);
            if ( c >= 'A' && c < 'A' + CHARS_WATCHED )
                counters[c - 'A']++;
        }
        
        printf("Result: ");
        for ( i = 0; i < CHARS_WATCHED; ++i )
            for ( j = 0; j < counters[i]; ++j )
                printf("%d", i + 1);
        
        printf("\n");
    }
    
    return 0;
}

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

  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
Похожие ответы