|
|
От: |
RedUser
|
|
| Дата: | 07.02.25 06:49 | ||
| Оценка: | 2 (1) | ||
#include <string.h> // Для strlen()
void reverse_string(char *str) {
if (str == NULL || *str == '\0') {
return; // Проверка на NULL и пустую строку
}
char *start = str;
char *end = str + strlen(str) - 1; // Указатель на последний символ
while (start < end) {
// Меняем символы местами
char temp = *start;
*start = *end;
*end = temp;
// Сдвигаем указатели к центру
start++;
end--;
}
}#include <string.h>
// Вспомогательная функция для переворота части строки между start и end
void reverse_range(char *start, char *end) {
if (start == NULL || end == NULL || start >= end) return;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
// Основная функция для переворота слов
void reverse_words(char *str) {
if (str == NULL || *str == '\0') return;
// 1. Переворачиваем всю строку целиком
reverse_range(str, str + strlen(str) - 1);
// 2. Переворачиваем каждое слово по отдельности
char *current = str;
while (*current) {
// Пропускаем пробелы
while (*current == ' ') current++;
if (*current == '\0') break;
// Находим границы слова
char *word_start = current;
while (*current != ' ' && *current != '\0') current++;
char *word_end = current - 1;
// Переворачиваем найденное слово
reverse_range(word_start, word_end);
}
}Напиши функцию на C, которая бы меняла порядок символов в строке на обратный
Есть строка, которая содержит слова, разделённые символом пробела. Напиши функцию на C, которая бы меняла порядок слов в строке на обратный