输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大写字母,然后输出!

给我个详细的答案,谢谢!

第1个回答  2012-04-26
汇编???
DATA SEGMENT
ANY DB 22
DB 10
DB 20 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET ANY
ADD BX,2
CALL INPUT
CALL _TEST
CALL SHOW
MOV AH,4CH
INT 21H

SHOW PROC
MOV CX,10
PUSH BX
L1: MOV AH,2
MOV DL,BYTE PTR [BX]
INT 21H
INC BX
LOOP L1
POP BX
RET
SHOW ENDP
INPUT PROC
PUSH BX
MOV AH,10
LEA DX,ANY
INT 21H
POP BX
RET
INPUT ENDP
_TEST PROC
PUSH BX
MOV CX,10
LS: CMP BYTE PTR [BX],'a'
JB LL
LB: CMP BYTE PTR [BX],'z'
JA EXIT
SUB BYTE PTR [BX],20H
INC BX
LOOP LS
JMP EXIT1
LL: CMP BYTE PTR [BX],'Z'
JA EXIT
CMP BYTE PTR [BX],'A'
JB EXIT
ADD BYTE PTR [BX],20H
INC BX
LOOP LS
JMP EXIT1
EXIT: MOV BYTE PTR [BX],' '
INC BX
LOOP LS
EXIT1: POP BX
RET
_TEST ENDP
CODE ENDS
END START
第2个回答  推荐于2019-09-20
以下程序通过测试. 有问题请追问!#include <stdio.h>void main()
{
char s[30];
scanf("%s",s);

char *p=s;
while(*p)
{
if(*p>='a'&&*p<='z')
{
*p-=32;
}
else if(*p>='A'&&*p<='Z')
{
*p+=32;
}
p++;
}
printf("%s\n",s);
}附图:本回答被网友采纳
相似回答