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
运行结果: