如何计算emu8086中字符串中特定字符的出现次数

时间:2015-12-26 02:18:27

标签: assembly dos x86-16 emu8086

请。 .kindly帮我解决这个问题。

输出:

输入字符串:已经

A - 2

B - 0

C - 0

D - 1

E - 1

2 个答案:

答案 0 :(得分:1)

编写一个循环遍历整个字符串以搜索特定字符的过程。对于每个匹配增加一个计数器。返回时显示结果为字符DL发生DH次
例如" A - 2"。

mov  dl, "A"
call CountChar
... print result ...
mov  dl, "B"
call CountChar
... print result ...


CountChar:
  mov  dh, 0
  mov  cx, ... length of the input string ...
  jcxz Ready
  mov  bx, ... address of the input string ...
 Again:
  cmp  [bx], dl
  jne  Skip
  inc  dh
 Skip:
  inc  bx
  loop Again
 Ready:
  ret

答案 1 :(得分:0)

取决于您支持的语言(读取:并非所有使用'A'到'E'的语言具有相同数量的字符),创建一个无符号值数组(数据类型也取决于最长的数组的合理大小),然后从给定字母表的开头到结尾进行枚举,计算发现并递增指定的数组条目。
为了完整性:如果案件计数你没有打电话(读:是'a'被算作'A')......如果他们要分开计算,你需要为各种情况保留适当的存储空间。 一旦枚举了字母表,只需从数组的开头走到最后,倾倒发现。 这不是最优雅的解决方案......但确实符合提供的参数。