Заменить заглавные символы на строчные, вставка в С++ - Assembler

Узнай цену своей работы

Формулировка задачи:

Помогите написать программу, которая заменяет заглавные символы в строчные. Есть пример, который заменяет символы "а" на *. Его надо переделать в задачу выше
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[]) {
setlocale(0, "rus");
char name[]="badalandabad";
printf("Первоначальная срока: %s", name);
_asm {
lea ebx, name
mov ecx, 12
lab:
mov ah, [ebx]
cmp ah, 61h
jnz lab2
mov [ebx], 2Ah
lab2:
inc ebx
loop lab
}
printf("\nОтредактированнаясрока: %s", name);
getch();
return 0;
}
Если можно, с комментариями

Решение задачи: «Заменить заглавные символы на строчные, вставка в С++»

textual
Листинг программы
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
 
void main(int argc, char* argv[]) {
char *name;
int len;
//setlocale(0, "rus");
if (argv[1]) 
        {name = argv[1]; } 
        else
        { printf("%s", "Enter string:"); 
        name = malloc(80); 
        gets(name);}
len = strlen(name);
printf("Первоначальная срока: %s", name);
 
_asm {
        mov     esi, name
        mov     ecx, len
@loop:  lodsb
        cmp     al, 41h
        jb      @next
        cmp     al, 5Ah
        ja      @next
        add     al,20h
        mov     [esi-1], al
@next:  loop    @loop
}
printf("\nОтредактированная срока: %s\n\r", name);
getch();
}

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

  1. Включаются необходимые заголовочные файлы
  2. Объявляются переменные: name (указатель на строку) и len (для хранения длины строки)
  3. Проверяется наличие аргумента командной строки. Если он есть, то вводится в качестве имени, иначе пользователю предлагается ввести строку
  4. Вычисляется длина строки
  5. Выводится первоначальная строка
  6. Код на ассемблере переводит заглавные буквы в строчные, добавляя к ним 20h (маленькая буква а в кодировке ASCII имеет значение 97, а большая А - 65, разница 32, поэтому прибавляем 20h, что равно 32 в десятичной системе счисления)
  7. Выводится отредактированная строка
  8. Программа ожидает нажатия клавиши

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


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

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

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