Найти и удалить все пробелы в строке - Assembler
Формулировка задачи:
Здравствуйте. Хотелось бы узнать, может кто-то сможет объяснить, как организуется смещение строки по заданной длине (не знаю, правильно ли я сформулировал последнюю часть). Была задача с массивом из 256 символов, в которой нужно найти все пробелы и удалить их. Длина строки =< 255. Проблема в том, что я не понял, как именно это смещение осуществить. Остальную часть задания прикрепил ниже.
.data S DB 256 DUP (?) .code cld lea di,S mov cx,255 mov al,' ' repne scasb jne exit move byte ptr [di], 0 exit: ...
Решение задачи: «Найти и удалить все пробелы в строке»
textual
Листинг программы
char s[]="my string my string"; j=0; for (i=0; i<length(s); i++) { if (s[i] != ' ') { s[j]=s[i]; j++; } }
Объяснение кода листинга программы
- Введенная строка:
my string my string
- Введенная переменная: j = 0
- Цикл начинается с i = 0 и продолжается до тех пор, пока i меньше или равно длине строки s.
- Условие цикла: если символ в позиции i не равен пробелу (' '), то выполняется блок кода внутри цикла.
- Внутри цикла значение символа в позиции i копируется в символ в позиции j в строке s.
- Значение переменной j увеличивается на 1 после каждой итерации цикла.
- После завершения цикла переменная j будет содержать длину строки без пробелов.
- Результат:
mystringmystring
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д