Дана последовательность прописных (больших) латинских букв.После каждой буквы вставить первую букву - C (СИ)

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

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

Здравствуйте. Выручайте:дана последовательность прописных (больших) латинских букв.После каждой буквы вставить первую букву. Составить программу обработки набора символов (текста) с использованием данных типа char и стандартных функций обработки строк. Результат обработки и исходную последовательность вывести на экран. В программе должны быть предусмотрены функции ввода исходных данных с проверкой на область допустимых значений, обработки текста. З.Ы. Желательно чтобы код был как можно проще и понятней. Заранее спасибо за помощь.

Решение задачи: «Дана последовательность прописных (больших) латинских букв.После каждой буквы вставить первую букву»

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        char res[BUFSIZ * 2], * pBuf = buf, * pRes = res;
        
        while ( isupper(*pBuf) ) {
            *pRes++ = *pBuf++;
            if ( pBuf - buf > 1 )
                *pRes++ = *buf;
        }
        *pRes = '\0';
        
        if ( *pBuf != '\0' && *pBuf != '\n' )
            printf("Wrong input!\n");
        else
            printf("Result: %s\n", res);
    }
    
    return 0;
}

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

В этом коде на языке C пользователь вводит строку, и программа добавляет в начало каждого слова первую букву.

  1. В первой строке подключаются заголовочные файлы, которые позволяют работать со стандартным вводом/выводом и символами.
  2. В функции main() объявляется переменная типа char buf[BUFSIZ], которая будет использоваться для хранения введенной пользователем строки.
  3. Затем с помощью цикла while и функции fgets() происходит считывание строки с учетом пробелов.
  4. Далее объявляются две переменные типа char res[BUFSIZ 2] и char pBuf = buf, *pRes = res; для хранения результата обработки строки.
  5. В цикле while проверяется, является ли текущий символ заглавной буквой.
  6. Если это так, то в результат добавляется этот символ, а указатель перемещается на следующий символ.
  7. Если в строке было более одного символа, то в результат добавляется первая буква исходной строки.
  8. После окончания цикла в результате добавляется нулевой символ.
  9. Если после цикла в исходной строке остались символы, и они не являются символом новой строки или нулевым символом, выводится сообщение об ошибке.
  10. В противном случае выводится результат.

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


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

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

9   голосов , оценка 4.222 из 5
Похожие ответы