[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...