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

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

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


运行结果:

目录
相关文章
|
6月前
|
C语言
【汇编语言实战】实现九九乘法表
【汇编语言实战】实现九九乘法表
53 2
|
6月前
|
C语言
【汇编语言实战】输入一个无符号整数求其逆序
【汇编语言实战】输入一个无符号整数求其逆序
46 2
|
6月前
|
C语言
【汇编语言实战】两个32位数的相加运算
【汇编语言实战】两个32位数的相加运算
56 2
|
6月前
|
C语言
【汇编语言实战】八皇后问题
【汇编语言实战】八皇后问题
40 2
|
6月前
|
C语言
【汇编语言实战】实现输出集合{1,2,...,n}全排列
【汇编语言实战】实现输出集合{1,2,...,n}全排列
42 1
|
6月前
|
C语言
【汇编语言实战】最小公倍数和最大公约数
【汇编语言实战】最小公倍数和最大公约数
85 1
|
6月前
|
C语言
【汇编语言实战】二分查找
【汇编语言实战】二分查找
50 1
|
6月前
|
C语言
【汇编语言实战】正整数的素数分解
【汇编语言实战】正整数的素数分解
38 1
|
6月前
|
C语言
【汇编语言实战】冒泡排序
【汇编语言实战】冒泡排序
56 1
【汇编语言实战】冒泡排序
|
6月前
|
C语言
【汇编语言实战】解迷宫问题
【汇编语言实战】解迷宫问题
51 2