【汇编语言实战】给定一个句子,将大写字母变为小写

本文展示了如何使用C语言和汇编语言分别对用户输入的句子进行大写字母转小写操作,通过`tolower`函数实现字符转换并输出结果。

C语言描述:

#include <stdio.h>
#include <ctype.h> // 包含tolower函数的头文件

int main() {
    char sentence[1000];
    fgets(sentence, sizeof(sentence), stdin); // 读取用户输入的句子
    for (int i = 0; sentence[i] != '\0'; i++) {
        if (isupper(sentence[i])) { // 判断是否为大写字母
            sentence[i] = tolower(sentence[i]); // 转换为小写字母
        }
    }
    printf("转换后的句子为:%s", sentence);
    return 0;
}

汇编语言:

include irvine32.inc

.data
sentence BYTE "I am A aPpLe",0  ; 已知的句子

.code
main PROC
    mov edx, OFFSET sentence  ; edx指向句子数组的起始地址

    call ConvertToLower        ; 调用转换函数

    mov edx, OFFSET sentence  ; edx重新指向句子数组的起始地址
    call WriteString          ; 输出转换后的句子

    exit
main ENDP

ConvertToLower PROC
    mov esi, edx              ; esi指向句子数组的起始地址

    L1:
    mov al, [esi]             ; 将句子中的字符复制到al
    cmp al, 0                 ; 判断是否到达字符串结束符
    je Done                   ; 如果是,则结束程序

    cmp al, 'A'               ; 检查字符是否为大写字母
    jb NextChar               ; 如果不是大写字母,则跳到下一个字符
    cmp al, 'Z'
    ja NextChar

    add al, 32                ; 将大写字母转换为小写字母
    mov [esi], al             ; 将转换后的字符存回句子数组中

    NextChar:
    inc esi                   ; 指向下一个字符
    jmp L1                    ; 继续处理下一个字符

    Done:
    ret
ConvertToLower ENDP

END main

运行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值