汇编语言:输入一串数字字母字符串,把其中的数字去掉,把大写改小写,小写改大写

作者&投稿:磨郊 (若有异议请与网页底部的电邮联系)
输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大写字母,然后输出!...~

#include
int main()
{char s[200];
int i;
gets(s);
for(i=0;s[i];i++)
if(s[i]>='A'&&s[i]<='Z')s[i]+=32;
else if(s[i]>='a'&&s[i]<='z')s[i]-=32;
puts(s);
return 0;
}

从键盘输入的任何字符的字符串,一个字母大写输出。


数据段

MSG1 DB 13,10,'请输入一个STR:$

MSG2 DB 13,10,'上的STR是:$'
> I1_L DB 100

I1_N DB? I1_B DB 100 DUP(?)

数据



代码段

假设CS:CODE,DS:DATA

START:

MOV结束AX,DATA

MOV DS,AX



LEA DX,MSG1

MOV AH,9

INT 21H



LEA DX,I1_L BR /> MOV AH,10

INT 21H



LEA BX,I1_B

MOV CL I1_N MOV CH,0

LOP:
> MOV AL,[BX]

CMP AL','

JB NEXT

CMP AL,'Z'

JA NEXT

与to_upper:

AL,11011111B

MOV [BX],AL

NEXT:

INC BX

LOOP LOP



DISP:

MOV BYTE PTR [BX ,'$'

LEA DX,MSG2

MOV AH,9

INT 21H



LEA DX,I1_B

MOV AH,9
> INT 21H



MOV AH,4CH

INT 21H



CODE ENDS


结束开始

下列程序符合题目要求:
;=======================================
DATA SEGMENT
MSG1 DB 13, 10, 'Input a STR : $'
MSG2 DB 13, 10, 'The STR is: $'
I1_L DB 100
I1_N DB ?
I1_B DB 100 DUP (?)

I2_B DB 100 DUP (?)
DATA ENDS
;---------------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX

LEA DX, MSG1
MOV AH, 9
INT 21H
LEA DX, I1_L
MOV AH, 10
INT 21H
;---------------------------------------
LEA SI, I1_B
LEA DI, I2_B
MOV CL, I1_N
MOV CH, 0
LOP:
MOV AL, [SI]
CMP AL, 'A'
JB NEXT
CMP AL, 'z'
JA NEXT
CMP AL, 'Z'
JB TO_XXX
CMP AL, 'a'
JB NEXT
TO_XXX:
XOR AL, 00100000B
MOV [DI], AL
INC DI
NEXT:
INC SI
LOOP LOP
MOV BYTE PTR [DI], '$'
;---------------------------------------
DISP:
LEA DX, MSG2
MOV AH, 9
INT 21H
LEA DX, I2_B
MOV AH, 9
INT 21H
;---------------------------------------
MOV AH, 4CH
INT 21H
CODE ENDS
END START
;=======================================

程序运行后,将以下列形式显示:

C:\MASM>z
Input a STR : skdpa9293fa okq pPOKSFDPKPASP
The STR is: SKDPAFAOKQPpoksfdpkpasp

输入:中断搞定
loop:
从输入数组依次读ASCII字符到寄存器(AX)
如果为数字('0'~'9')
JMP loop
如果为大写('A'~'Z')
ADD 寄存器内容 32
MOV 寄存器内容 数组当前位置
JMP loop
如果为小写('a'~'z')
DEC 寄存器内容 32
MOV 寄存器内容 数组当前位置
JMP loop
输出:中断搞定


C语言中 scanf("%d",&a[j][k]); 要输入一串数字 该怎么输入?
程序运行时一旦输入字符个数大于10,p就不再继续读入,而后面的一个读入函数即scanf("%s", str)就会从第11个字符开始读入。(3) scanf()函数中没有精度控制。如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。(4) scanf中要求给出变量地址,如给出变量名...

c语言,要求编一个程序,输入一串字符串,要求将其中的数字放入另一个字符...
include<stdio.h> void main(){ char a[10];char b[10],i,j=0;gets(a);for(i=0;i<10;i++){ if(a[i]>='0'&&a[i]<='9'){b[j]=a[i];j++;} if(a[i]=='\\n')break;} b[j]='\\0'; \/\/结束标记就可以了 printf("%s\\n",b);} 问题二 include<stdio.h> void ...

C语言。输入一个整数数字串 然后对这个数字串的奇数偶数分别求和。例如...
include <stdio.h>\/\/望采纳 int main(void){ int value,j=0,o=0,temp,temp1;printf ("请输入一个正整数:");scanf("%d",&value);\/\/获取输入的正整数 temp1=value;\/\/分割正整数,并求和 while(value!=0){ temp=value%10;\/\/使temp的值为value值的最后一个数字,value取余得到的结果当然是...

C语言:输入一串字符,输出所有数字及数字的个数,并求出所有输入数字之和...
printf("所有数字:");for(i=0;i<count1;i++){ if(s[i]>='0'&&s[i]<='9'){ sum+=s[i]-'0';printf("%-3c",s[i]);count2++;} } printf("\\n所有数字个数为:%d\\n它们的和为:%d\\n",count2,sum);}来个简单点的,能实现所有功能但是“以连续两个EE作为输入的结尾”...

C语言中怎么输入数字和字母?
二、输入单个字符。输入单个字符可以用以下两种函数。定义char c;1 scanf("%c", &c);这种方法和输入数字是类似的,%c仅读入一个字符,并赋值给c。2 c = getchar();getchar函数的功能就是读入一个字符,并以返回值形式返回。三、输入一串字符(以空白字符分隔)。可以用scanf的%s格式。char str[...

C语言:输入一串字符,输出所有数字及数字的个数,并求出所有输入数字之和...
include<stdio.h>#include<string.h>void main(){char s[50];int i,count1=0,count2=0,sum=0;for(i=0;scanf("%c",&s[i])&&s[i]!='\\n';i++,count1++);printf("所有数字:");for(i=0;i<count1;i++){if(s[i]>='0'&&s[i]<='9'){sum+=s[i]-'0';printf("%-...

用C语言编程序:输入一行数字字符,用数组元素作为计数器来统计每个数字字...
include <stdio.h>int main() {int n,a[10]={0}; while(1) { scanf("%d",&n); a[n]++; if(getchar()=='\\n')break; } for(n=0;n<10;n++) if(a[n]!=0)printf("%d: %d\\n",n,a[n]); return 0;} ...

c语言编程题:输入一个长整形数,从高位开始逐步输出,例如输入123456,输出...
while (number) { \/\/ 提取各位数字(个位开始),存于数组中array[i] = number % 10;number \/= 10;i--;}for (i = 0; i < digits; i++) { \/\/ 从数组中打印出数字if (i == digits - 1)printf("%d", array[i]); \/\/ 最后一个数字不需要逗号分隔else printf("%d, "...

在c语言中,如何从键盘输入一串包含数字和字母的字符串,以连续的数字构...
*p<='z')||((*p>='A' && *p<='Z')))(*EnCount)++;else (*FuhaoCount)++;p++;} } void main(){ char ch[30];int a = 0,b = 0 ,c = 0;scanf("%s",ch);count(ch,&a,&b,&c);printf("数字的个数是:%d 字母个数是:%d 符号个数是:%d\\n",a,b,c);} ...

C语言编写:输入任意一串字符串,统计该字符串中出现的字符a的个数,并输...
C语言编写:输入任意一串字符串,统计该字符串中出现的字符a的个数,并输出共统计的个数。  我来答 1个回答 #国庆必看# 全家游如何体验多种玩法?好学者百科 2022-09-28 · 百度认证:北京惠企网络技术有限公司官方帐号 好学者百科 科技生活门户网站,探索发现百科全书。 向TA提问 ...

宁津县13972014274: 汇编语言,用键盘输入含数字和字母的字符串分类排序后输出显示 -
暨谢盐酸: code segment assume cs:code org 100h start: call get_st call sort_p lea dx,lfcr mov ah,9h int 21h mov ah,4ch int 21h get_st proc near push cs pop es lea di,in_st mov cx,0 in_1: mov ah,1 int 21h cmp al,13 je in_2 mov byte ptr es:[di],al inc di inc cx ...

宁津县13972014274: 汇编语言,从键盘输入一字符串 -
暨谢盐酸: ;经运行,符合题目要求 code segment assume cs:code,ds:code org 100h start: push cs pop ds Q0:lea dx,Buffer mov ah,9 ;显示提示 int 21h mov si,200h ;硬编码缓冲区首址 mov byte ptr [si],0ffh ;置输入缓冲区大小为255个字符 mov dx,si ;定...

宁津县13972014274: 用汇编语言实现,从键盘输入任意字符(字母、数字、特殊符号等),并将其ASC2码值输出 -
暨谢盐酸: code segment assume cs:code start:mov ah,01h int 21h mov cx,02h n:call der cmp dl,09h ja next add dl,30h mov ah,02h int 21h loop n nc:int 3h next:add dl,37h mov ah,02h int 21h loop n jmp nc der:push cx mov dl,00 mov cx,4 b:shl al,1 rcl dl,1 loop b pop cx ret code ends end start

宁津县13972014274: 汇编语言:输入一串数字字母字符串,把其中的数字去掉,把大写改小写,小写改大写 -
暨谢盐酸: 下列程序符合题目要求:;======================================= DATA SEGMENT MSG1 DB 13, 10, 'Input a STR : $'MSG2 DB 13, 10, 'The STR is: $'I1_L DB 100 I1_N DB ? I1_B DB 100 DUP (?) I2_B DB 100 DUP (?) DATA ...

宁津县13972014274: 汇编语言编程问题:用键盘输入一个字符串,含有若干大小写字母,数字,要求统计出三种类型各有多少个,并显示 -
暨谢盐酸: ;用键盘输入一个字符串(回车结束),含有若干大小写字母,数字,要求统计出三种类型各有多少个,并显示 data segment mess db 0dh,0ah,'Input String: $' sz db 0 ;数字个数 dAx db 0 ;大写个数 xXx db 0 ;小写个数 SZ_C DB 100 DUP ('$'...

宁津县13972014274: 汇编作业,汇编语言,输入一串字符,将数字相加输出 -
暨谢盐酸: CODE SEGMENT ASSUME CS:CODE STR1 DB 255,?,255 DUP('$') STR2 DB 13,10,'$' START: PUSH CS POP DS PUSH CS POP ES MOV AH,10 LEA DX,STR1 INT 21H MOV AH,9 LEA DX,STR2 INT 21H LEA SI,STR1 MOV CL,[SI+1] XOR ...

宁津县13972014274: [汇编语言]由键盘输入任意字符串 然后显示出来 -
暨谢盐酸: data segment keyboard db 256,?,256 dup (?) data ends code segment assume cs:code,ds:data main proc far mov ax,data mov ds,ax lea dx,keyboard mov ah,0ah;输入字符串 int 21h lea di,keyboard mov cl,[di+1];取出实际输入字符的个数 mov ...

宁津县13972014274: 用汇编语言 8086软件 从键盘输入字符串 (可能还有大写字母,小写字母,数字及空格) ,对该字符串进行处 -
暨谢盐酸: ;从键盘输入字符串 (可能还有大写字母,小写字母,数字及空格) ,;对该字符串进行处理,把大写字母变成小写字母,小写字母变成大写字母,去掉数字及空格,;然后再屏幕上显示该字符串;ASSUME CS:CC, DS:QQ QQ SEGMENT ...

宁津县13972014274: 汇编语言编写. 让用户输入一个字符串 -
暨谢盐酸: CODE SEGMENT ASSUME CS:CODE ORG 100H START: JMP BEGIN MSG1 DB 'please input a string: ','$' MSG2 DB 'please input a char: ','$' LFCR DB 13,10,'$' STRING1 DB 255,?,255 DUP(?) ; 输入的串长应小于10 CHAR1 DB ? ...

宁津县13972014274: 汇编“从键盘输入一串字符,分别统计其中字母、数字和其他字符的个数,并输出显示.” -
暨谢盐酸: 没代码怎么看... 附上我的:(没调) program easy; var st:string; a:array [1..3] of longint; i:longint; begin readln(st); fillchar(a,sizeof(a),0); for i:=1 to length(st) do if (st[i] in ['a'..'z']) or (st[i] in ['A'..'Z']) thena[1]:=a[1]+1 else if (st[i] in ['0'..'9']) then a[2]...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网