Удалить группы пробелов, которыми начинается и которыми заканчивается последовательность - QBasic
Формулировка задачи:
Я программирую только на C++, Pascal.
Потребовалась программа на Basic, а учить его ради одной программы просто нет смысла.
Напишите, кто может, желательно с комментариями, чтобы я могла разобраться.
ЗАДАНИЕ:
Известно, что в исходной строке есть хотя бы один символ, отличный от пробела. Требуется преобразовать строку следующим образом. Удалить группы пробелов, которыми начинается и которыми заканчивается последовательность, а также заменить каждую внутреннюю группу пробелов одним пробелом. Если указанных групп нет в данной последовательности, то оставить последовательность без изменения.
Решение задачи: «Удалить группы пробелов, которыми начинается и которыми заканчивается последовательность»
textual
Листинг программы
DIM sinp AS STRING, I AS INTEGER sinp = " s fg h j q w e r t " 'INPUT "vvedite stroku", sinp PRINT sinp; "|" sinp = LTRIM$(RTRIM$(sinp)) I = INSTR(sinp, " ") DO WHILE I > 0 sinp = RTRIM$(LEFT$(sinp, I)) + " " + LTRIM$(MID$(sinp, I)) I = INSTR(sinp, " ") LOOP PRINT sinp; "|"
Объяснение кода листинга программы
- Создаются две переменные: sinp типа STRING и I типа INTEGER
- Переменной sinp присваивается строка
s fg h j q w e r t - Выводится на экран текущее значение переменной sinp с помощью команды PRINT sinp;
| - С помощью функции LTRIM$ и RTRIM$ удаляются начальные и конечные пробелы в переменной sinp
- С помощью функции INSTR находится первый символ
в переменной sinp - Пока символ
не исчезнет из переменной sinp (т.е. пока значение функции INSTR не станет равным 0), выполняются следующие действия: — С помощью функции LEFT$ и RTRIM$ формируется новая строка, которая состоит из символов до первогои после него — К новой строке добавляется пробел — С помощью функции MID$ и LTRIM$ формируется новая строка, которая состоит из символов между двумя— Новая строка добавляется к переменной sinp — Снова находится первый символс помощью функции INSTR - Выводится на экран текущее значение переменной sinp с помощью команды PRINT sinp;
|