Напечатать последовательность слов в обратном порядке - C (СИ) (79009)
Формулировка задачи:
Очень прошу..помогите с задачкой..
"Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами – запятая, за последним словом точка.Напечатать эту последовательность слов, но в обратном порядке" (на языке си)
Решение задачи: «Напечатать последовательность слов в обратном порядке»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define MAXSIZE 256 void revert(char arr[], int N) { char* left = arr; char* right = &arr[N - 1]; while(left < right) { *left ^= *right; *right ^= *left; *(left++) ^= *(right--); } } int main(void) { char str[256] = "abcd pc wtf"; revert(str, strlen(str)); puts(str); return 0; }
Объяснение кода листинга программы
В данном коде на языке C реализована функция revert, которая переворачивает строку, и основная функция main, которая вызывает эту функцию для строки abcd pc wtf
.
- #include
Включает в код функции файла стандартного ввода/вывода, нужные для отправки сообщений в консоль. - #include
Включает в код функции работы со строками. - #define MAXSIZE 256 Определяет максимальную длину строки, которую можно обработать.
- void revert(char arr[], int N) Функция принимает на вход два аргумента: массив символов и его длину.
- *char left = arr;** Выделяют указатели на начало и конец строки.
- *char right = &arr[N - 1];**
- while(left < right) Организуется цикл, пока левая позиция указателя меньше правой.
- left ^= right; Применяется операция побитового исключающего ИЛИ к символам на позициях left и right.
- right ^= left;
- (left++) ^= (right--); Перемещаются указатели на следующие позиции.
- int main(void) Функция main создает и инициализирует строку
abcd pc wtf
. - revert(str, strlen(str)); Вызывают функцию revert для переворачивания строки.
- puts(str); Выводят перевернутую строку в консоль.
- return 0; Завершают выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д