Перемещение второго слова в строке в конец строки (без использования стандартных функций) - C (СИ)

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

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

Помогите пожалуйста решить задачку Строка состаящая не менее чем из 4 слов, в ней необходимо переставить второе слово в конец строки. Нельзя пользоватся строковыми функциями типа (strcpy, strcat), и дополнительными массивами. Например была строка The best city of Moscow Должна получится The city of Moscow best

Решение задачи: «Перемещение второго слова в строке в конец строки (без использования стандартных функций)»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
 
 
int main (void)
{
 setlocale(LC_CTYPE,".1251");//    включает русский язык
 //===============================================================
 
 char mst[40];                                       //объявление безразмерного массива
 int i, j, K;                                        //объявление переменных
 
 printf("Введите строку из четырех слов: ");
 gets(mst);                                          //присвоение строки массиву
 printf("\nИсходная строка: %s\n", mst);
 
 K=0;
 while (mst[K]!='\0')                                //присваиваем К нулевой элемент
     K++;
 
 i=0;
 if (mst[i]!=' ')                                    //присваиваем i номер первого пробела
     i++;
 
 {
     if (mst[i]==' ')
         for (j=i; j!=i+1; j++)                      //НЕВЕРНОЕ УСЛОВИЕ ДЛЯ ЦИКЛА???
         {
             mst[i]=K;                               //КАК ПЕРЕМЕЩАТЬ СИМВОЛЫ???
             K++;
         }
         i++;
 }
 printf("\nПолученная строка: %s", mst);
 
 //===============================================================
 printf("\n\nДля выхода из программы нажмите любую клавишу...");
 getch();
 return 0;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Объявляется безразмерный массив mst типа char и переменные i, j, K типа int
  3. Выводится приглашение для ввода строки из четырех слов
  4. Введенная строка присваивается массиву mst с помощью функции gets
  5. Выводится исходная строка с помощью функции printf
  6. Переменная K инициализируется значением 0
  7. В цикле while происходит присвоение значения K элементу массива mst с символом '\0'
  8. Переменная i инициализируется значением 0
  9. В цикле if происходит присвоение значения i номера первого пробела в строке mst
  10. В блоке { происходит попытка перемещения символов в строке mst, но условие цикла неверно задано
  11. После выхода из блока { происходит увеличение значения переменной i на 1
  12. Выводится полученная строка с помощью функции printf
  13. Выводится приглашение для нажатия любой клавиши для выхода из программы
  14. Программа ожидает нажатия клавиши и завершается при любом нажатии клавиши с помощью функции getch
  15. Возвращается 0, что означает успешное завершение программы

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


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

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

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