Разбить строку пополам - Turbo Pascal
Формулировка задачи:
Доброго времени суток друзья. Задался вопросом. Как разделить строку пополам. Например. Дана строка: anfdk_rlkfls_jfkjfl_lkjlkh_erjlkjl, как её разделить на две строки?Вот так:
B = anfdk_rlkfls_jfkjfl_
C = lkjlkh_erjlkjl
Символ "_" является пробелом.
Притом, количество слов, могло быть и не чётным. Подскажите простенький метод.
Решение задачи: «Разбить строку пополам»
textual
Листинг программы
Var A,B : String; i,j : Byte; Begin Writeln('Введите строку из слов, разделенных пробелами'); { Readln(S); } {}A:='anfdk rlkfls jfkjfl lkjlkh erjlkjl';{} A:=A+' '; i:=1; j:=Length(A); While i<j do Begin While (A[i]<>' ') do Inc(i); While (A[j]<>' ') and (j>i) do Dec(j); While (A[i]=' ') and (i<j) do Inc(i); While (A[j]=' ') and (j>i) do Dec(j); end; B:=Copy(A,i,Length(A)-i+1); A:=Copy(A,1,i); Writeln('A = ',A); Writeln('B = ',B); end.
Объяснение кода листинга программы
- В начале объявляются переменные A и B типа String, а также переменные i и j типа Byte.
- Выводится сообщение для ввода строки из слов, разделенных пробелами.
- В переменную A записывается введенная строка.
- Переменная A увеличивается на единицу, чтобы включить пробел в начало строки.
- Переменная i устанавливается равной 1, а переменная j - длине строки A.
- Запускается цикл While, который выполняется до тех пор, пока переменная i меньше переменной j.
- Внутри цикла While происходит проверка каждого символа в строке A. Если символ не является пробелом, то переменная i увеличивается на единицу. Если символ является пробелом и переменная j больше переменной i, то переменная j уменьшается на единицу. Если символ является пробелом и переменная i меньше переменной j, то переменная i увеличивается на единицу.
- После завершения внутреннего цикла While переменная i становится равной j.
- Копируется подстрока A от позиции i до позиции j в переменную B.
- Строка A изменяется так, чтобы первый символ был пробелом, и ее длина уменьшалась на единицу.
- Выводится сообщение с значениями переменных A и B.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д