Строка символов. Поменять местами первое и последнее слово в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть задание: Дана строка символов. Поменять местами первое и последнее слово в строке. На сколько я понимаю, то должен быть массив символов. И менять слова как только дойдет до пробела. а вот как это все записать я не знаю

Решение задачи: «Строка символов. Поменять местами первое и последнее слово в строке»

textual
Листинг программы
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<ctype.h>
  4. #include<string.h>
  5. int main()
  6. {
  7.     char* psz=(char*)malloc(256);
  8.     printf("Enter a string: ");
  9.     gets(psz);
  10.     int i = 0; char str1[256];
  11.     while (!isspace(*psz) && *psz != '\0')
  12.         str1[i++] = *psz++; str1[i] = '\0';
  13.     int n = strlen(psz)-1;
  14.     int k = 0; char str2[256];
  15.     char* temp = psz; temp+=strlen(psz)-1;
  16.     while (!isspace(*temp) && *temp != '\0') *temp--;
  17.     while (*temp != '\0') str2[k++] = *temp++;
  18.     while (!isspace(psz[n]) && n >= 0) n--;
  19.     str2[k] = '\0'; psz[n] = '\0';
  20.     sprintf(str2,"%s%s %s",str2,psz,str1);
  21.     printf("%s\n",str2);
  22.     free(psz);
  23.     getchar();
  24.     return 0;
  25. }

Объяснение кода листинга программы

В этом коде:

  1. Сначала выделяется память под строку символов, вводимых пользователем.
  2. Затем пользователю предлагается ввести строку.
  3. Далее, используя функцию gets, введенная строка сохраняется в переменной типа char*, выделенной ранее.
  4. Следующий этап — выделение первых (без пробелов) символов строки во временный массив str1.
  5. Затем выделяется память под массив символов, которые будут на месте первых символов строки.
  6. В цикле, пока не встретится пробел или конец строки, в массив str2 записываются символы из конца строки.
  7. Затем, используя функцию sprintf, в массив str2 вставляется строка, образованная из первых символов строки, пробела и оставшихся символов строки.
  8. Наконец, выводится полученная строка, и память освобождается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы