三九宝宝网宝宝教育写作范文

用汇编语言统计字符串中每个字符的个数要简单详细带解析

01月13日 编辑 39baobao.com

[c语言中统计字符串中各个字符的个数]//计算字符串中相同字符的个数#include "stdio.h"#include "string.h"int count_str_same(char * p,char ch);int main(){int same_ch;char a[100];char c;printf("请输入字符串:");ge...+阅读

code segment

assume cs:code

org 100h

start:jmp begin

stra db 254

strn db ?

strr db 254 dup(?)

arr db 254 dup(?)

arrn db 254 dup(0)

begin:push cs

pop ds

push cs

pop es

lea dx,stra

mov ah,10

int 21h

lea si,strr ; 字符串首地址置于si

lea di,arr ; 字符串中字符存于的备用首地址置于di

mov cl,strn ; 输入的字符数

mov ch,0 ;

mov dx,0 ; 不重复的字符数

cld ; 清方向标志

lodsb ; 装入第一个字符

inc byte ptr[di+254] ; 第一个字符计数器增1

stosb ; 存入第1个字符

inc dx ; dx由0变1

dec cx ; 输入的字符数减1

1:

push cx ; 保存外循环的cx

mov cx,dx ; 将已统计出的不重复的字符数置于计数器cx

lodsb ; 装入下一个输入的字符到al

lea di,arr ; 置不重复的字符保存的首地址

repne scasb ; 只要al与在arr中已保存的不相等则循环扫描

je 2 ; 若找到有相同的 转2

lea di,arr ; 没有找到则是新出现的字符,取arr首地址

add di,dx ; 加上dx后 di指向紧邻的空白处

inc byte ptr [di+254]; 将对应的计数器增1

stosb ; 将新字符保存到空白处

inc dx ; 不重复字符数增1

jmp 3 ; 转 3

2:

inc cx ; cx指向找到的相同的元素的上一个元素处

mov ax,dx ; 已有元素总数置于ax

sub ax,cx ; 计算找到的元素在arr中的相对位置

lea di,arr ; 取arr首地址

add di,ax ; 计算找到的元素在arr中的绝对位置

inc byte ptr[di+254] ; 相应的计数器加1

3:

pop cx ; 恢复外循环的计数器

loop 1 ; 循环

push dx

mov ah,2

mov dl,13 ; 回车

int 21h

mov dl,10 ; 换行

int 21h

pop dx

mov cx,dx

lea si,arr

4:

mov dl,[si] ; 输出字符

mov ah,2

int 21h

mov dl,32 ; 输出空格

int 21h

mov dl,[si+254]

mov al,dl

mov ah,0

mov bl,10

div bl

push ax

mov dl,al ; 输出字符个数的十位数字

add dl,30h

mov ah,2

int 21h

pop ax

mov dl,ah ; 输出字符个数的个位数字

add dl,30h

mov ah,2

int 21h

mov dl,13 ; 回车

int 21h

mov dl,10 ; 换行

int 21h

inc si

loop 4

mov ah,4ch

int 21h

code ends

end start

以下为关联文档:

C程序:输入若干字符分别统计数字字符的个数英文字母的个数#include "stdio.h" void main() { char s; int i=0,j=0,k=0,m=0,da=0,xiao=0; printf("please input the string\n"); while((s=getchar())!='\n') /*循环从键盘读入字符直到一...

c统计带有字母的字符串兄弟,不考虑效率下随便写个,参考一下,改进下程序就可以了。 private void richTextBox1_TextChanged(object sender, EventArgs e) { label1.Text = string.Format("string coun...

如何用Excel统计某字符或关键字出现的次数如何用Excel统计某字符或关键字出现的次数?例如原始数据区域为A1:A5,每个单元格中包含不同或相同的文本,要根据需求求某个字符或关键字在各单元格文本中出现的次数总和。 0b4d0...

求助关于编写函数统计输入字符的个数#include<stdio.h> #include<string.h> main() { int i,j=0,k; char a[1000];//长度自己根据实际情况调整 printf("请输入一串字符串:\n"); gets(a); k=strlen(a); for(i=0;i<k;i+...

从一个字符串中查找子串如果存在则统计子串的个数Private Sub Command1_Click() Dim arr, s As String s = InputBox("输入字串:", , "you") If InStr(Text1, s) > 0 Then arr = Split(Text1, s) MsgBox s & "共找到:" & UBound(arr) El...

输入N个由 0 9组成的数字字符串统计出现频率最高的数字Dim num(10) As Integer, i As Integer, s As String, max(10) As Integer, k As Integer For i = 0 To Len(Text1.Text) - 1 num(Val(Mid(Text1.Text, i + 1, 1))) = num(V...

今天百度的笔试题之一开发测试工程师改程序目的是从一个字符#include "stdio.h" #include "string.h" void foo(char a[100],int cnt[256]){ memset(cnt,0,sizeof(cnt)*256); while(*a!='\0'){ if(*a>='a'&&*a<='z'){ ++cnt[*a]; } ++a; }...

LOL英雄联盟游戏ID可以使用那些特殊字符现在很多的输入法可以直接用拼音打出偏旁文字。而这些文字是被这些游戏允许的哦。列如在输入法中输入dian 你就会看到(丶)这样一个符号。这个符号是能够在游戏中使用的。能够...

汇编程序分类统计字符串中大小写字母数字其他字符个数;分类统计字符串中大小写字母,数字,其他字符个数 ;定义字符串,不需要键盘输入,统计结果依次保存到X1,X2,X3,X4中 data segment buf db 'asdg123456,^&%$#$' X1 db 0 X2 db 0 X3 db...

推荐阅读
图文推荐