Как поменять слова местами в строках на C?

Пользователь

от terrence , в категории: C/C++ , 2 года назад

Как поменять слова местами в строках на C?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vladimir , 2 года назад

@terrence 

Для того, чтобы поменять местами слова в строке на языке C, необходимо выполнить следующие шаги:

  1. Считать входную строку с помощью функции fgets() или scanf().
  2. Разбить строку на отдельные слова с помощью функции strtok().
  3. Обработать каждое слово, меняя местами первую и последнюю буквы.
  4. Объединить отдельные слова в одну строку с помощью функции strcat().


Пример кода, который меняет местами первую и последнюю буквы каждого слова в строке:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <string.h>

int main() {
    char str[100];
    char *word;
    char new_str[100] = "";

    printf("Введите строку: ");
    fgets(str, sizeof(str), stdin);

    word = strtok(str, " ");
    while (word != NULL) {
        char temp = word[0];
        word[0] = word[strlen(word) - 1];
        word[strlen(word) - 1] = temp;

        strcat(new_str, word);
        strcat(new_str, " ");

        word = strtok(NULL, " ");
    }

    printf("Новая строка: %s
", new_str);

    return 0;
}


Примечание: данное решение предполагает, что каждое слово в строке разделено пробелом. Если разделитель не является пробелом, то необходимо изменить второй аргумент функции strtok().

Пользователь

от cayla , 10 месяцев назад

@terrence 

Приведенный код поменяет местами первую и последнюю буквы в каждом слове и объединит их в новую строку.