題目:計算字串中字母、數字、其他字元的個數。
**:
datas segment
buf db 80
len db ?
string db 80 dup(32)
crlf db 13,10,'$'
displ db 'the amount of letters is:',13,10,'$'
dispd db 'the amount of digits is:',13,10,'$'
dispo db 'the amount of others is:',13,10,'$'
letter db 0
digit db 0
other db 0
datas ends
stacks segment
db 200 dup (?)
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
start:
mov ax,datas
mov ds,ax
call input
call dispcrlf
mov dx,offset string
mov ah,09
int 21h
call tongji
call result
mov ah,4ch
int 21h
input proc near;輸入
mov dx,offset buf
mov ah,10
int 21h
retinput endp
tongji proc near;統計
lea bx,string
mov cl,len
loop1:
mov al,[bx]
call isletter
jnc next
inc letter
jmp the_end
next:
call isdigit
jnc the_end
inc digit
the_end:
inc bx
loop loop1
rettongji endp
isletter proc near
cmp al,'a'
jb exit1
cmp al,'z'
jbe exit2
cmp al,'a'
jb exit1
cmp al,'z'
jbe exit2
exit1:
clcret
exit2:
stcret
isletter endp
isdigit proc near
cmp al,'0'
jb notd
cmp al,'9'
ja notd
stdret
notd:
clcret
isdigit endp
result proc near
mov dx,offset crlf
mov ah,09h
int 21h
mov dx,offset displ;輸出字母個數
mov ah,09
int 21h
mov bl,letter
call out_amount
call dispcrlf
mov dx,offset dispd;輸出數字個數
mov ah,09
int 21h
mov bl,digit
call out_amount
call dispcrlf
mov dx,offset dispo;輸出其他字元個數
mov ah,09
int 21h
mov bl,len
sub bl,letter
sub bl,digit
call out_amount
call dispcrlf
retresult endp
dispcrlf proc near
mov dx,offset crlf
mov ah,09
int 21h
retdispcrlf endp
out_amount proc near
;要輸出的數儲存在bl中
push ax
push dx
push cx
mov cl,4
mov al,bl
shr al,cl
mov dl,al
and dl,0fh
add dl,30h
mov ah,02h
int 21h
mov dl,bl
and dl,0fh
add dl,30h
mov ah,02h
int 21h
pop cx
pop dx
pop ax
retout_amount endp
codes ends
end start
字串統計
演算法訓練 字串統計 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且...
字串統計
time memory limit 1000 ms 32768 k submitted 2163 accepted 973 對於給定的乙個字串 長度小於1000 統計其中大小寫字母字元出現的次數。輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串...
字串統計
description 對於給定的乙個字串,統計其中數字字元出現的次數。input 輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串。output 對於每個測試例項,輸出該串中數值的個數,每個輸出佔一行。sample input 2 asdfa...