Найти и удалить все пробелы в строке - 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++;
  }
}

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

  1. Введенная строка: my string my string
  2. Введенная переменная: j = 0
  3. Цикл начинается с i = 0 и продолжается до тех пор, пока i меньше или равно длине строки s.
  4. Условие цикла: если символ в позиции i не равен пробелу (' '), то выполняется блок кода внутри цикла.
  5. Внутри цикла значение символа в позиции i копируется в символ в позиции j в строке s.
  6. Значение переменной j увеличивается на 1 после каждой итерации цикла.
  7. После завершения цикла переменная j будет содержать длину строки без пробелов.
  8. Результат: mystringmystring

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


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

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

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