Перемещение второго слова в строке в конец строки (без использования стандартных функций) - 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; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Объявляется безразмерный массив mst типа char и переменные i, j, K типа int
- Выводится приглашение для ввода строки из четырех слов
- Введенная строка присваивается массиву mst с помощью функции gets
- Выводится исходная строка с помощью функции printf
- Переменная K инициализируется значением 0
- В цикле while происходит присвоение значения K элементу массива mst с символом '\0'
- Переменная i инициализируется значением 0
- В цикле if происходит присвоение значения i номера первого пробела в строке mst
- В блоке { происходит попытка перемещения символов в строке mst, но условие цикла неверно задано
- После выхода из блока { происходит увеличение значения переменной i на 1
- Выводится полученная строка с помощью функции printf
- Выводится приглашение для нажатия любой клавиши для выхода из программы
- Программа ожидает нажатия клавиши и завершается при любом нажатии клавиши с помощью функции getch
- Возвращается 0, что означает успешное завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д