Дана последовательность прописных (больших) латинских букв.После каждой буквы вставить первую букву - 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 пользователь вводит строку, и программа добавляет в начало каждого слова первую букву.
- В первой строке подключаются заголовочные файлы, которые позволяют работать со стандартным вводом/выводом и символами.
- В функции main() объявляется переменная типа char buf[BUFSIZ], которая будет использоваться для хранения введенной пользователем строки.
- Затем с помощью цикла while и функции fgets() происходит считывание строки с учетом пробелов.
- Далее объявляются две переменные типа char res[BUFSIZ 2] и char pBuf = buf, *pRes = res; для хранения результата обработки строки.
- В цикле while проверяется, является ли текущий символ заглавной буквой.
- Если это так, то в результат добавляется этот символ, а указатель перемещается на следующий символ.
- Если в строке было более одного символа, то в результат добавляется первая буква исходной строки.
- После окончания цикла в результате добавляется нулевой символ.
- Если после цикла в исходной строке остались символы, и они не являются символом новой строки или нулевым символом, выводится сообщение об ошибке.
- В противном случае выводится результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д