Перевернуть слово в предложении - C (СИ)
Формулировка задачи:
Помогите пожалуйста. Нужно перевернуть слово в предложении последние. Например "За окном хорошая погода", чтобы погода была "адогоп".
Решение задачи: «Перевернуть слово в предложении»
textual
Листинг программы
#include <stdio.h> #define SIZE 500 int main ( void ) { char charSequence[SIZE] = ""; signed short counter = 0, secondCounter, currentCharacter, lenghtLastWords = 0; signed char stringSize = 0, reverseCounter = 0; puts( "Enter your sequence" ); while (( currentCharacter = getchar()) != EOF && currentCharacter != '\n' ) charSequence[counter++] = currentCharacter; charSequence[counter] = '\0'; reverseCounter = stringSize = counter; for ( counter = SIZE; counter >= 0; --counter ) { if (!(charSequence[counter] >= 'a' && charSequence[counter] <= 'z') && !(charSequence[counter] >= 'A' && charSequence[counter] <= 'Z') && lenghtLastWords == 0) continue; if (( charSequence[counter] >= 'a' && charSequence[counter] <= 'z') || ( charSequence[counter] >= 'A' && charSequence[counter] <= 'Z') || charSequence[counter] >= '0' && charSequence[counter] <= '9') ++lenghtLastWords; else break; } for ( secondCounter = 0; secondCounter <= stringSize; ++secondCounter ) { if ( secondCounter < stringSize - lenghtLastWords ) printf( "%c", charSequence[secondCounter] ); else printf("%c", charSequence[reverseCounter--]); } puts( "" ); return 0; }
Объяснение кода листинга программы
- В начале программы подключается стандартная библиотека для работы с файлами и вывода данных на экран.
- Объявляются основные переменные:
- charSequence - массив символов, в который будут добавляться символы из ввода пользователя;
- counter - счётчик для прохода по массиву;
- secondCounter - счётчик для прохода по массиву во втором цикле;
- currentCharacter - текущий вводимый символ;
- lenghtLastWords - длина последней слова в строке, которое нужно перевернуть;
- stringSize - размер строки, включая последний нулевой символ;
- reverseCounter - счётчик для прохода по массиву в обратном порядке.
- Выводится приглашение для ввода строки.
- В цикле while считываются символы из ввода пользователя и добавляются в массив charSequence. При этом счётчик counter увеличивается на 1, а reverseCounter и stringSize равны текущему значению counter.
- После ввода всей строки, во втором цикле for происходит определение последнего слова, которое нужно перевернуть. Если текущий символ не является буквой, то он пропускается, а счётчик reverseCounter уменьшается на 1.
- В третьем цикле for происходит вывод перевёрнутого слова на экран. Если текущий индекс secondCounter меньше stringSize - lenghtLastWords, то выводится символ из массива charSequence, иначе выводится символ из массива charSequence с уменьшенным reverseCounter.
- В конце программы выводится пустая строка и возвращается 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д