Перевернуть слова в строке - C (СИ)
Формулировка задачи:
Ребята буду очень благодарен ) нужно написать программу которая будет "переворачивать" слова в строке
Решение задачи: «Перевернуть слова в строке»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define DELIM " ,.?!;:'-"
int main()
{
char s[80] = "Everybody wonts to rule the world", *p, res[80];
int i = 0, j;
for(p = strtok(s, DELIM); p; p = strtok(NULL, DELIM)){
for(j = strlen(p) - 1; j >= 0; --j, ++i){
res[i] = p[j];
}
res[i] = ' ';
++i;
}
res[i] = '\0';
puts(res);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и вводом-выводом
- Объявление строки, в которой содержится предложение для переворота
- Объявление указателя на начало строки и на символ, который будет использоваться в качестве разделителя
- Объявление массива, в который будут добавляться перевернутые слова
- Объявление индексов для прохода по строке
- Начальный цикл, который будет разделять исходную строку по символам-разделителям и добавлять перевернутые слова в результирующую строку
- Внутренний цикл, который будет перебирать символы в текущем слове в обратном порядке
- Добавление символа в результирующую строку
- Добавление пробела в результирующую строку после каждого слова
- Увеличение индекса для следующего слова
- Увеличение индекса для следующего символа в текущем слове
- Завершение внутреннего цикла после обработки всех слов в текущей строке
- Завершение начального цикла после обработки всех строк
- Добавление нулевого символа в конец результирующей строки
- Вывод результирующей строки на экран
- Возврат 0, что означает успешное выполнение программы