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

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

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

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

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

textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
int main()
{
    char* psz=(char*)malloc(256);
    printf("Enter a string: "); 
    gets(psz);
    int i = 0; char str1[256];
    while (!isspace(*psz) && *psz != '\0') 
        str1[i++] = *psz++; str1[i] = '\0';
    int n = strlen(psz)-1;
    int k = 0; char str2[256]; 
    char* temp = psz; temp+=strlen(psz)-1;
    while (!isspace(*temp) && *temp != '\0') *temp--;
    while (*temp != '\0') str2[k++] = *temp++;
    while (!isspace(psz[n]) && n >= 0) n--;
    str2[k] = '\0'; psz[n] = '\0';
    sprintf(str2,"%s%s %s",str2,psz,str1);
    printf("%s\n",str2);
    free(psz);
    getchar();
    return 0;
}

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

В этом коде:

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

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


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

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

13   голосов , оценка 3.769 из 5
Похожие ответы