Перевернуть слово в предложении - 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, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д