文档库 最新最全的文档下载
当前位置:文档库 › 统计字符串中某个字符出现次数

统计字符串中某个字符出现次数

统计字符串中某个字符出现次数
统计字符串中某个字符出现次数

武汉理工大学《微机原理与接口技术》课程设计

目录

摘要 (1)

1课程设计目的 (2)

2设计条件及要求 (2)

2.1程序设计条件 (2)

2.2程序设计要求 (2)

3总体方案论证 (2)

3.1总体方案思路 (2)

3.2方案注意事项 (3)

3.3具体方案论证 (3)

3.3.1方案一 (3)

3.3.2方案二 (4)

3.3.3方案论证 (4)

4流程图设计及说明 (5)

4.1流程图 (5)

4.2设计说明 (5)

5软件设计关键问题和相应程序段 (6)

5.1关键问题说明 (6)

5.2问题解决方法 (6)

5.3相应程序段 (7)

6程序调试 (9)

7结果记录及分析 (10)

8课程设计收获及心得体会 (12)

9参考文献 (13)

10附录 (14)

摘要

微机原理与接口技术作为计算机科学领域的基础知识,尽管计算机科学高速发展,但基本原理依然不变,即是遵循冯·诺依曼基本思想的。学习并能掌握好微机原理与接口技术这门知识是非常重要的,通过对这门知识的了解可以简单的编写一些日常中经典的控制程序。

本文通过汇编语言编写程序,完成统计字符串中某个字符出现次数这一基本功能。下面会介绍该程序的编程思路,并对程序设计中遇到的问题进行深入的研究。

关键字:微机统计编程

统计字符串中某个字符出现次数

汇编语言程序设计

1课程设计目的

通过本次课程设计,熟悉微机原理与接口技术的基本理论,使学生能够进一步了解微型计算机工作原理, 微型计算机的硬件结构及微型计算机软件编程,掌握使用汇编语言编写程序的方法,并进一步提高编程设计能力。

2设计条件及要求

本次《微机原理与接口技术》课程设计的题目为统计字符串中某个字符出现的次数,为汇编程序设计。

2.1程序设计条件

采用16位微处理器8086 CPU以及86系列微型计算机的指令系统;

软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。

2.2程序设计要求

设计汇编语言程序,实现统计字符串中某个字符出现次数的功能,具体功能要求如下:(1)提示输入字符串;输入任意字符串string ,点击Enter结束输入;

(2)提示输入字符;输入任意字符ch,点击Enter 结束输入;

(3)输出字符串string 中字符ch的出现次数。点击Enter程序退出。

3总体方案论证

3.1总体方案思路

要使用汇编语言实现统计字符串中某个字符出现次数的功能,总体的思路为:取出字符串string中的字符,依次与字符ch进行比较,同时统计该字符与字符ch相同的次数,最后输出结果到屏幕

步骤大体分为以下几点:

(1)从键盘输入字符串string,同时得到字符串中的字符总数,并保存在寄存器中;(2)从键盘输入查询字符ch,并保存在寄存器al中;

(3)从寄存器中循环取出字符串string中的字符,依次与字符ch进行比较,并记录相同的次数,存入寄存器中;

(4)从寄存器中取出结果,转换成字符输出到屏幕上。

3.2方案注意事项

根据程序设计要求,设计方案中需要注意的有以下几点:

(1)提示语句。需要在屏幕上显示提示输入字符和字符串及输出结果的提示语句;(2)回车结束。需要在输入字符和字符串之后按Enter键才结束输入,输出结果后按Enter键才退出程序;

(3)程序使用范围。需要考虑程序能处理的字符串的最大长度;

(4)结果输出形式。由于在寄存器中存入的为二进制数,在输出的时候需要显示十进制的数;

(5)结果输出转换。二进制数据从寄存器不能直接输出到屏幕上;

3.3具体方案论证

根据总体方案思路,程序的核心是取字符串中的字符与查询字符ch循环比较。

根据输出结果需要为十进制这一要求,以下有两种方案可以实现这一功能。

3.3.1方案一

方案一:将寄存器中的二进制数据转换成BCD码输出

具体步骤:

(1)在进行字符比较的同时把统计结果存入寄存器中;

(2)统计结束之后,取出统计结果,并判断是否需要转换成BCD码进行转换;(3)把结果转换成字符输出。

论证:

该方案有以下优点:

(1)由于统计结果最大为254,只需要使用一个8位寄存器来存放数据,调用方便;(2)数据连续,占用储存空间小;

(3)设计思路简单,简化程序的循环部分。

但该方案有以下缺点:

(1)输出程序段复杂,需要外加判断子程序;

(2)转换复杂,判断部分随着位数增多而变得复杂;

(3)统计结果受限制。如果输出三位数,由于转换复杂,输出变得难以实现;

3.3.2方案二

方案二:将三位数的输出结果分离成三个0到9的字符逐个输出

具体步骤:

(1)在统计次数的过程中限制统计结果中每位上的数不大于9;

(2)把三位数各存放到三个8位寄存器中;

(3)输出时按顺序转换成字符逐个输出。

论证:

此方案有以下优点:

(1)输出段程序简单,不需要外加判断子程序;

(2)转换方便,循环比较时直接限制;

(3)位数由可以调用的8位寄存器个数决定,可以简单实现三位数的输出。

但该方案有以下缺点:

(1)需要用三个8位寄存器,调用不方便;

(2)存放结果的每个8位寄存器只用到4位,浪费存储空间;

(3)循环比较部分复杂,数据储存不方便。

3.3.3方案论证

方案一与方案二相比,循环比较时统计结果简单,但输出结果为三位数时,方案一编程复杂,难以实现;而方案二使用三个8位寄存器,理论上可以统计0至999的统计次数的输出,满足最大统计结果254个字节,而且编程简单。就本程序而言,8个8位寄存器可以满足方案二中寄存器个数的要求。因此选用方案二。

4流程图设计及说明

4.1流程图

按照总体方案设计流程图。

流程图如下:

图4.1程序流程图

4.2设计说明

按照总体方案,先设置缓冲区放置数据。再输入字符串,并把字符串长度即循环次数

传到dl。然后输入查询字符ch。取字符串第一个字符与查询字符比较,相同时统计结果加1,不相同时跳过加1步骤。循环次数减1,当减至0时,输出统计结果。

5软件设计关键问题和相应程序段

5.1关键问题说明

在程序设计过程中遇到以下问题:

(1)回车结束程序问题

调用DOS功能多字符输入0ah时输入的最后一个字符为回车。但是在输入查询字符和输出结果的时候,如果不加回车结束程序,程序会在输入查询字符的瞬间输出结果并退出程序,导致无法确认结果;

(2)程序使用范围问题

题目当中没有限定字符串的长度,但是这里用到的DOS功能调用多字符输入0ah所能输入的缓冲区中用于存放字符的区域最多只能存放255个字符(最后一个字节留给回车符),加上缓冲区第1个字节存放预定字符个数,第2个字节保留用于调用返回时存放实际输入的字符个数,实际中缓冲区最大的使用空间为257个字节,存放字符串最大长度为254个字节,需要编程进行限定。

(3)结果分离储存问题

由于DOS功能调用多字符输入0ah所能输入的缓冲区中一个字符在该字符串中最多重复出现的次数为254。那么在输出的时候需要输出三位数。在具体方案论证中已经确定使用把结果的三位数分离成三个0到9的字符的方法。需要考虑如何实现这一功能。

(4)结果输出转换问题

由于在寄存器中存入的为二进制数,在输出的时候需要显示十进制的数。但二进制数据从寄存器不能直接输出到屏幕上,要经过转换并调用多字符输出9号功能进行输出。需要考虑9号功能的使用方法和如何正确地输出字符。还应该对输出结果进行优化。

5.2问题解决方法

对于以上的问题,经过考虑和尝试之后,得到以下解决方案:

(1)回车结束程序问题

受到DOS功能调用多字符输入0ah输入字符最后结束的时候要输入回车符的启发,设

置一个只有一个字节的区域,然后用DOS功能调用多字符输入0ah调用这个区域。该缓冲区只能输入一个字符,而要结束输入要输入回车符,因此只有输入回车的时候才会结束0ah 的调用,到下一步或退出程序,而输入其他的字符无效。将此段程序加到查询字符输入和输出结果之后,可以实现按回车结束的功能。

但是要注意的是,由于需要调用0ah,则dx与ah寄存器不能在调用前存放数据,不然会被覆盖。需要用其他寄存器代替来存储统计次数。

(2)程序适用范围问题

划分缓冲区的时候,定义变量时用DB定义为8位字节型数据,每一字节可以存放一个字符。DOS功能调用多字符输入0ah最多输入255个字符,因此在调用伪指令dup时,重复次数的设置不能超过255。若超过255,则在微机原理实验集成环境MF2KP中运行时会产生“无法生成obj文件”错误。

(3)结果分离储存问题

预定三个8位寄存器分别存放三位数的个、十、百位,并清零。注意这三个寄存器不能是al、cx。al存放查询字符,cl存放循环次数。ch没有使用,但是由于cl在循环比较时自动减1,为0时会向ch借位,会影响ch中的数据,也会造成循环次数不正确,因此ch应清零。

在进行字符比较的时候,若字符相同则个位的寄存器上的数加1,然后个位与0ah比较,若相等,则个位清零,存放十位的寄存器的数加1;当达到10,即0ah时,个位不会存0ah,而是清零。如此类推,设置十位和百位。这就保证了各位上的数是0至9,而且分别存在三个8位寄存器中。

(4)结果输出转换问题

使用DOS功能调用多字符输出9号输出字符时是读取字符的ASCII码。在ASCII码表中,字符0~9对应的ASCII码为30h~39h而在三个寄存器中的储存的数为01h~09h。因此在输出之前,寄存器中的储存的统计结果要加上30h转换成ASCII码。

输出还可以优化。输出时按照百位、十位、个位的顺序输出。当百位为0时,用转移指令跳过百位的输出;当百位和十位同时为0时,跳过百位和十位的输出。

5.3相应程序段

(1)回车结束程序段

over db 1,?,1 dup(?) ;设置只能储存一个字节的缓冲区

lea dx,buff ;输入ENTER结束

mov ah,0ah

int 21h

(2)范围设置程序段

buff db 255,?,255 dup(?) ;字符个数不能超过255

(3)分离储存程序段

again: cmp al,[si] ;取字符串的字符与查询字符循环比较jnz next

inc dl ;查询结果个位放在DL

cmp dl,0ah

jnz next

inc dh ;查询结果十位放在DH

xor dl,dl

cmp dh,0ah

jnz next

inc bh ;查询结果百位放在BH

xor dh,dh

next: inc si

loop again

(4)输出转换程序段

xor cl,cl

cmp ch,cl

jz liangwei ;若输出结果为两位数,则不显示百位的0

mov dl,ch

add dl,30h ;百位转换成ASCII码

mov ah,2 ;输出百位

int 21h

jnz sanwei ;若输出结果为三位数,则当十位为0时显示十位liangwei: cmp bh,cl ;若输出结果为一位数,则不显示十位的0

jz yiwei

sanwei: mov dl,bh

add dl,30h ;十位转换成ASCII码

mov ah,2 ;输出十位

int 21h

yiwei: mov dl,bl

add dl,30h ;个位转换成ASCII码

mov ah,2 ;输出个位

int 21h

6程序调试

程序见附录

6.1调试步骤

(1)输入单字字符作为字符串,并输入不同查询字符;

(2)输入单字字符作为字符串,并输入相同查询字符;

(3)输入十个以上相同的字符作为字符串,并输入相同查询字符;

(4)输入一百个以上相同的字符作为字符串,并输入相同查询字符;

(5)输入相同字符直到不能输入为止,并输入相同查询字符;

(6)输入一串任意字符作为字符串,并输入查询字符;

6.2调试中出现的问题

(1)程序完整输入之后,连接运行。但是无论输入什么样的字符,输出的结果都为零;(2)解决了问题(1)之后,当结果为100~109时,结果显示为10~19.

6.3问题原因及解决方法

问题(1):

原因:在输入查询字符之后,直接接入了回车结束程序段,导致查询字符被覆盖,在循环比较的时候字符串中没有字符与查询字符一致,统计结果输出为0。

解决方法:把回车结束程序段接到循环比较部分之后。注意如果存储统计结果的三个8位寄存器用到al、dx或dl的话,要先转移数据。

问题(2):

原因:在输出的时候,原本当结果的百位为0时,跳过百位的输出,当百位和十位同时为0时,跳过百位和十位的输出。但是由于设置成当百位为0时,跳过百位的输出,十位同时为0时,跳过十位的输出,导致当百位为1,十位为0时,十位输出被跳过。所以结果为100~109时,结果显示为10~19。

解决方法:增加转移指令,使得当百位为1时,全部输出。

7结果记录及分析

调试步骤(1)输入单字字符a作为字符串,并输入查询字符b时,输出结果为0;调试步骤(2)输入单字字符a作为字符串,并输入查询字符a时,输出结果为1。证明个位输出正确,而且输出把百位和十位的0屏蔽,运行正常。

图7.1调试步骤(1)结果

图7.2调试步骤(2)结果

调试步骤(3)输入14个相同的字符“aaaaaaaaaaaaaa”作为字符串,并输入查询字符a,输出结果为14。证明十位输出正确,而且输出把百位的0屏蔽,运行正常。

图7.3调试步骤(3)结果

调试步骤(4)输入105个相同的字符“aaaa……aaaa”作为字符串,并输入查询字符a,输出结果为105。证明十位输出正确,而且输出把百位的0屏蔽,运行正常。

图7.4调试步骤(4)结果

调试步骤(5)输入相同字符“aaaa……aaaa”直到不能输入为止,并输入查询字符a,输出结果为254。证明本程序最大可统计重复次数为254。

图7.5调试步骤(5)结果

调试步骤(6)输入一串任意字符“asdasd”作为字符串,并输入查询字符a,输出结果为2。证明本程序可查询任意字符,并运行正常。

图7.6调试步骤(6)结果

综上所述,程序功能完整,能够正常运行,符合要求课程设计要求。

8课程设计收获及心得体会

通过本次课程设计,我更加了解微机原理与接口技术课程的基本原理,熟悉运用汇编语言编程,进一步了解汇编语言中各种程序指令。在这次课程设计中,我对于微机原理中DOS 功能调用的运用更加熟练,编程能力进一步提高。

我拿到的课程设计题目是编写程序来实现统计字符串中某个字符出现次数这一功能。刚开始觉得这个题目很简单,在平时微机课的课本和作业里也有出现过类似的题目。当我把程序编好并输入电脑,运行的时候,出现了意想不到的事:输出结果一闪而过,程序迅速退出。程序是可以正确的,但是没有设置停顿。这让我懂得,在书本和作业上的程序都是理想化的,在实际的操作中需要进行优化,从而更加符合人的需求。

这个课程设计题目中对程序的统计次数没有要求。对于这个题目我原本的方案可以实现程序的功能,但是对统计次数有限制。于是我更改方案,使得统计次数没有要求。虽然在对程序优化的过程中很辛苦,但是当自己的想法可以实现的时候,还是觉得收获很大。

在完成这次课程设计的时候,我提高了自己的编程能力,并知道了自己之前学习微机原理课的时候的不足,让我更加深入的研究和掌握这一门课程。

9参考文献

[1]彭虎等编著.微机原理与接口技术(第二版).北京:电子工业出版社,2008

[2]沈美明,温东禅.IBM-PC汇编语句程序设计(第2版).北京:清华大学出版社,2001

[3]任向明,卢惠林.汇编语言程序设计实用教程.北京:清华大学出版社,2009

[4]马力妮.80x86汇编语言程序设计.北京:机械工业出版社,2004

[5]曹加恒,苏光奎,许先斌.新一代汇编语言程序设计.北京:高等教育出版社,2003

10附录

具体程序如下:

data segment

inf1 db 0dh,0ah,'Please input string: $'

inf2 db 0dh,0ah,0dh,0ah,'Please input a word: $'

inf3 db 0dh,0ah,0dh,0ah,'Result: $'

buff db 255,?,255 dup(?)

over db 1,?,1 dup(?)

data ends

code segment

assume ds:data,cs:code

begin: mov ax,data

mov ds,ax

lea dx,inf1 ;提示输入字符串

mov ah,9

int 21h

lea dx,buff ;从键盘输入字符串,按enter结束

mov ah,0ah

int 21h

lea dx,inf2 ;提示输入查询字符

mov ah,9

int 21h

mov ah,1 ;从键盘输入查询字符

int 21h

mov cl, buff+1 ;字符总数

xor ch,ch

lea si,buff+2 ;字符串首地址

xor dh,dh

xor bx,bx

again: cmp al,[si] ;取字符串的字符与查询字符循环比较jnz next

inc bl ;查询结果个位放在BL

cmp bl,0ah

jnz next

inc bh ;查询结果十位放在BH

xor bl,bl

cmp bh,0ah

jnz next

inc dh ;查询结果百位放在DH

xor bh,bh

next: inc si

loop again

mov ch,dh

lea dx,over ;按ENTER结束查询字符的输入

mov ah,0ah

int 21h

lea dx,inf3 ;提示输出结果

mov ah,9

int 21h

xor cl,cl

cmp ch,cl

jz er ;若输出结果为两位数,则不显示百位的0

mov dl,ch

add dl,30h ;百位转换成ASCII码

mov ah,2 ;输出百位

int 21h

jnz san ;若输出结果为三位数,则当十位为0时显示十位er: cmp bh,cl

jz yi ;若输出结果为一位数,则不显示十位的0 san: mov dl,bh

add dl,30h ;十位转换成ASCII码

mov ah,2 ;输出十位

int 21h

yi: mov dl,bl

add dl,30h ;个位转换成ASCII码

mov ah,2 ;输出个位

int 21h

lea dx,over ;按ENTER继续

mov ah,0ah

int 21h

mov ah,4ch ;退出程序

int 21h

code ends

end begin

从键盘输入一串字符,分别统计其中的字母(不区分大小写)、数字字符和其他

; 题目名称:分类统计字符 ; 题目来源:https://www.wendangku.net/doc/6215037625.html,/question/131013276.html ; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。 Code Segment Assume CS:Code,DS:Code ; -------------------------------------; 功能:显示指定地址(Str_Addr)的字符串 ; 入口: ; Str_Addr=字符串地址(要求在数据段) ; 用法: Output Str_Addr ; 用法举例:Output PromptStr Output MACRO Str_Addr lea dx,Str_Addr mov ah,9 int 21h EndM ; -------------------------------------; 功能:在当前光标位置显示一个字符 ; 入口:dl=要显示的字符 Output_Chr proc Near push ax mov ah,02h int 21h pop ax ret Output_Chr Endp ; -------------------------------------; 功能:显示、输出一个回车、换行 Output_CTLF proc Near push ax push dx mov ah,02h mov dl,0dh int 21h mov dl,0ah int 21h pop dx pop ax ret Output_CTLF Endp ; -------------------------------------; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示

Java统计字符串中每个字符出现次数

Java统计字符串中每个字符出现次数package com.perry.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * * @author perry_zhao * 统计一个字符串中每个字符出现的次数(不忽略大小写) */ public class CountStr { public Map count(String str){ System.out.println("需要统计的字符串:"+str+"准备开始统计每个字符出现的次数..."); Map map = new HashMap(); String temp =""; for(int i=0; i

写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数

写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数 1、用ibatis的原因 2、jdbc、hibernate、ibatis的区别 3、ibatis 的核心配置文件 4、ibatis的核心类 1、在myeclipse加入hibernate环境的全过程是什么? 2、hibernate的核心配置文件是什么及其作用? 3、hibernate的核心类是什么,它们的相互关系是什么?重要的方法是什么? 4、关联: 5、hibernate中的one-to-many或many-to-one中常用的方式是什么? 6、Criteria 的 1、JDBC如何做事务处理? 2、写出几个在Jdbc中常用的接口 3、简述你对Statement,PreparedStatement,CallableStatement 的理解 4、Java中访问数据库的步骤? 5、JDBC中的核心类及其作用是什么? 6、执行存储过程用那一个类,如何操作输出参数?(操作) 8、可能会让 1.列举出10个JAVA语言的优势 2.列举出JAVA中10个面向对象编程的术语 3.列举出JAVA中6个比较常用的包 4.JAVA中的标识符有什么作用和特点 5.JAVA中的关键字有什么特点,列举出至少20个关键字 6.JAVA中数据类型如何分类? 7.JAVA中运算符的分类及举例 8.super,th 1、java中有几种类型的流?JDK为每种类型的流提供了一些抽

象类以供继承,请说出他们分别是哪些类?2、启动一个线程是用run()还是start()? 3、线程的基本概念、线程的基本状态以及状态之间的关系4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什 1. super()与this()的区别? 2. 作用域public,protected,private,以及不写时的区别? 3. 编程输出如下图形。 4. JAVA的事件委托机制和垃圾回收机制 5. 在JAVA中,如何跳出当前的多重嵌套循环? 6. 什么是java序列化,如何实现java 序列化?(写一个实例) 7. 一

汇编实验三:分类统计字符个数

一、实验目的 学习用汇编语言编写设计分支循环程序 二、实验要求 程序接收用户键入的一行字符(字符个数不超过80个,该字符串用回车符结束),并按字母、数字及其它字符分类计数,然后将结果存入以letter、digit和other为名的存储单元中。 三、实验提示 (1)程序可0AH功能调用把键入字符直接送到缓冲区中,然后再逐个取出分类计数。也可01H功能调用在接收字符后先分类计数再存入缓冲区中。 (2)程序需要进入debug运行并查看计数结果。 四、实验程序 datarea segment string db 80 db ? db 80 dup(?);定义字符串string,长度为80 letter db 0 ;定义存储单元letter digit db 0 ;定义存储单元digit other db 0 ;定义存储单元other datarea ends case segment main proc far assume cs:case, ds:datarea start: mov ax, datarea mov ds, ax lea dx, string mov ah, 0ah int 21h lea di, string + 2 ;输入一行字符,依次将每个字符存入字符串string中 sub ch,ch mov cl, string + 1 add dx, 2 check: ;将每个字符进行分类 mov al, [di] cmp al, 0dh

je exit ;字符串以回车符结束,若进行分类的字符是回车符,则跳转至exit,退出程序 cmp al, 30h ;与ASCII码中的0,即30h比较 jb o ;小于30h的,为其他类型字符,则跳转至o,在other块进行操作 cmp al, 39h ;与ASCII码中的9,即39h比较 jna d ;不大于39h的,结合不小于30h的,则跳转至d,在digit块进行操作 ja loro ;剩下的为字母或者其他类型 loro: cmp al, 41h ;与ASCII码中的A,即41h比较 jb o ;小于41h的,结合大于39h的,则跳转至o,在other块进行操作 cmp al, 7ah ;与ASCII码中的z,即7ah比较 ja o ;大于7ah的,则条钻至o,在other块进行操作 cmp al, 5ah ;与ASCII码中的Z,即5ah比较 jna l ;不大于5ah的,结合大于41h的,则跳转至l,在letter块进行操作 cmp al, 61h ;与ASCII码中的a,即61h比较 jnb l ;不小于61h的,结合不大于7ah的,则跳转至l,在letter块进行操作 jb o ;小于61h的,结合大于5ah的,则跳转至o,在other块进行操作 l: inc letter ;属于letter类型,则letter增1 inc di jmp check ;返回继续比较下一个字符 d: inc digit ;属于digit类型,则digit增1 inc di jmp check o: inc other ;属于other类型,则other增1 inc di jmp check exit: ;输出letter,digit,other类型的计数结果 mov ah, 02 mov dl, 0dh int 21h mov dl, 0ah int 21h mov dl, 4ch int 21h mov dl, 3ah int 21h mov dl, 0 int 21h xor ax, ax

汇编分类统计字符个数

分类统计字符个数 一、实验目的 通过编程实现字符进行分类统计。 利用DOS功能调用INT 21H的10(0Ah)号功能,掌握进行键盘输入字符串的方法以及数据区设置。 掌握8086指令: CMP、JB、JA、SHL、INC、LEA、INT、JNZ、SCASB、LOOPE/LOOPNE等。 二、实验内容 1、编写一个程序实现将数据段中存储在STRING处到NUM处的字符串进行分类统计,然后将结果存入以letter、digit和other为名的存储单元中。查找字符串STRING中是否有空格,如有找出第一个出现的位置(先用十六进制显示,后修改为十进制显示),否则输出N。 2、修改前述1的程序,实现从键盘输入一个以回车键作为结束符的字符串(字符个数不超过80个),存入BUF中,分类统计BUF中字符串,将结果存入以letter、digit和other为名的存储单元中,屏幕输出大小写字母个数、数字个数和其它字符个数,并查找字符串BUF中是否有空格,如有找出第一个出现的位置(用十进制显示),否则输出N。(对有余力的同学) 实验结果: DEBUG 调试并查看结果的正确性。 对存储区STRING的内容“12ABCDE#!@Y(78)=(1).” 屏幕显示: N 对存储区STRING的内容“12ABCD E#! @Y(78)=(1).” 屏幕显示: Place=7 对第2部分,如键盘输入 12ABCDE# 3456789143!@Y(78)=(1).回车 输出结果: Letter=6 Digit=15 Other=9 Place=9 三、分析与体会 本次实验我花了较长的时间来完成。初略的程序花了5个多小时完成。后来遇到转换为十进制的时候就卡住了。后来在第六周周三的时候听了课以后才会做。

数量分析方法模拟试题三 (1)

商务统计方法模拟试题三 一、判断题 1、定义数据结构是在数据视窗中进行的。() 2、在进行二项分布检验时,要求检验变量必须是二值变量。() 3、Kendall相关系数适用于度量定类变量间的线性相关关系。() 4、非参数检验要求样本来自的总体服从或近似服从正态分布。() 5、配对样本中个案个数一定是相同的。() 6、在SPSS数据文件中,一行代表一个个案(case)。() 7、单样本t检验也可用于对总体比率进行检验。() 8、在进行方差分析时,若总方差主要是由组内方差引起的,则会拒绝原假设。() 9、二值变量序列中,游程数最小为1.() 10、变量值越大,对应的秩就会越小。() 二、单项选择题 1、SPSS数据文件默认的扩展名() A、.sps B、.spo C、.sav D、.rtf 2、在SPSS的运行方式中,最常见,对初学者最适用的方式是() A、程序运行方式 B、完全窗口菜单方式 C、混合运行方式 D、联机帮助方式 3、面对100份调查问卷,在进行SPSS数据输入时,应采用() A、原始数据的组织方式 B、计数数据的组织形式 4、下列关于变量名的取名规则的说法,不正确的是() A、变量名的字符数不能超过8个 B、变量名不区分大小写字母 C、“3G”是一个合法的变量名 D、变量名可以以汉字开头 5、在定义数据结构时,Label是指定义() A、变量名 B、变量名标签 C、变量值标签 D、变量类型 6、“年龄”这个变量属于() A、定类型变量 B、定序型变量 C、定距型变量 7、欲插入一个个案,应选择的一级菜单是() A、File B、Edit C、View D、Data 8、在横向合并时,[Excluded V ariables]框中的变量是() A、两个待合并的数据文件中的所有变量 B、合并后新的数据文件中包括的变量 C、合并后新的数据文件中不包括的变量 D、第二个待合并的数据文件中的变量 9、如果只想对收入大于5000或者职称不小于4级的职工进行计算,应输入的条件表达式是() A、收入>5000or 职称>4 B、收入>5000and 职称>4 C、收入>5000 or not(职称>4) D、收入>5000 or not(职称<4) 10、希望从全部231个个案中随机选出32个个案,应采用的选取方式是() A、指定条件选取 B、近似选取 C、精确选取 D、过滤变量选取 11、分类汇总中,默认计算的是各分类组的()

计算字符串中每种字符出现的次数

计算字符串中每种字符出现的次数[Dictionary泛型集合用法] 前几天,同学问了我一道程序员的面试题,题目是“统计用户输入的一串数字中每个数字出现的次数”。 当时看到这个题目,我的第一想法就是: 1.先判断用户输入的是否是数字,用if-else语句来判断; 2.将用户输入的数字字符串转换成char数组; 3.用for循环遍历每个字符,根据switch-case语句来逐一判断。 4.再建立一个int数组来接收判断后的结果,最后for循环输出。 class Program { static void Main(string[] args) { //计算用户输入的一串数字中每个数字出现的次数 Console.WriteLine("请输入一串数字"); string str = Console.ReadLine(); //将字符串转换为字符数组 char[] chnum = str.ToCharArray(); #region判断用户输入的是否是数字 for (int i = 0; i < chnum.Length; i++) {//判断每一个字符是否是数字通过char的方法来判断 if (!char.IsNumber(chnum[i]))

{ Console.WriteLine("您的输入有误,请输入数字"); Console.ReadKey(); return; } } #endregion //定义一个新的数组来保存计数 int[] count=new int[9]; #region for循环遍历 //for循环遍历 for (int i = 0; i < chnum.Length; i++) { switch (chnum[i]) { case'1': count[0]++; break; case'2': count[1]++; break; case'3':

微机课程方案字符串分类统计

个人资料整理仅限学习使用 课程设计报告微机原理目:题字符串分类统计周喜民学生姓名: 32 学号:专业班级:0601计陈顺赵晏龙同组姓名: 指导教师:范轶彦2018.1.4-2018.1.10 设计时间:

个人资料整理仅限学习使用 目录 2一、需求分析 3二、系统设计 31. 内容 3.思路2

5三、系统总体框图 6四、调试分析 6五、实验结果 7六、程序设计 13七、总结 14八、参考文献 个人资料整理仅限学习使用 一、需求分析 本程序主要用于,把输入的一串字符分类统计,分别统计出数字、大写字符、小写字符和其他字符的个数。 本程序采用汇编语言编程,定义了宏、比较判断、循环调用、统计等等,非常人性化的把统计的结果显示出来。比如你输入一串数字“12345”,它会显示出你输入的这串数字,并显示数字的个数为5,同时显示其他相应类字符为空。

程序接收用户键入的一行字符<字符长度不大于80个,以回车结束),并把字符,数字,其它字符分类计数,然后将结果存入以Letter,Digit,Other为名的存储单元中。程序可采用0AH断将键入的字符直接送至键盘缓冲区,然后逐个取出分类计数。也可采用01H在接收字符后进行分类奇数在存入缓冲区。程序需要进入DEBUG看计数结果 二、系统设计 1.内容 从键盘输入任意一个字符串,以回车作为结束符并显示,分别统计并显示出其中数字字符、大写字符、小写字符以及其它字符的个数。 .思路2. 个人资料整理仅限学习使用 <1).首先定义两个宏,一个用于输出统计各字符的个数,另一个用于输出字符串。 <2).在数据段中定义各种字符提示信息以便程序清晰明白。 <3).定义数据缓冲区用于存放输入的字符串,定义NUM区用于存放统计的大写字符、小写字符、数字以及其它字符的个数。定义OTHERCHAR、BIGCHAR、SMALLCHAR 以及堆栈用于存放统计的相应字符保存,以便后来输出。 <4).首先调用DOS 10号功能用DX指定BUF区,将输入的字符串保存到BUF区中。 <5).将BUF+1的内容取出来,判断是否为0,如果为0表示没有输入任何字符,则程序跳到NEXTLAP<输出提示信息You do not input any string!),然后显示字符串?)然后调用DOS 1号功能获取您从键盘输入的数,判断是否为Y或y如果是则将程序跳到刚开始处重新执行,如果不是这两个字符则程序结束。 <6).如果输入了字符串,则调用DOS 2号功能将BUF里的内容输出来<2号功能可以输出$符号而9号功能遇到$符号就终止)。 <7).取字符出来进行比较统计,如果它比30H大且比39H小则为数字,如果比41H大且比5AH小则为大写字符,如果比61H大且比7AH小则为小写字符,如果不是这三种情况则为其它字符。 注:DX存数字个数,BX存小写字母个数,DI存大写字母个数,BP存其它字符个数。 <8).将数字个数、大写字母个数、小写字母个数、其它字符个数依次放入NUM 区。 <9).依次输出各字符: a.判断数字个数是否为0,如果为0则输出提示没有此类数据,否则输出数

统计字符的出现次数

COUNTIF函数 例1 统计在一串编号中的某个字符的个数 假设数据在A1至A10单元格中,数据为:sdf23fd,ds34fd,ds2,fd123,... 要统计数据中含有2的个数,公式 =COUNTIF(A1:A10,"*2*") 例2 数据(a) 数据(b) apples 32 oranges 54 peaches 75 apples 86 公式说明(结果) =COUNTIF(A2:A5,"apples") 计算第一列中苹果所在单元格的个数 (2) =COUNTIF(A2:A5,A4) 计算第一列中桃所在单元格的个数 (2) =COUNTIF(A2:A5,A3)+COUNTIF(A2:A5,A2) 计算第一列中柑桔和苹果所在单元格的个数 (3) =COUNTIF(B2:B5,">55") 计算第二列中值大于 55 的单元格个数 (2) =COUNTIF(B2:B5,"<>"&B4) 计算第二列中值不等于 75 的单元格个数 (2) =COUNTIF(B2:B5,">=32")-COUNTIF(B2:B5,">85") 计算第二列中值大于或等于 32 且小于或等于 85 的单元格个数 (3) SUMPRODUCT 例1 如何利用EXCEL函数统计一个单元格中相同字符个数,比如A1中有"ABCBA",将"B"的个数统计出 A1是 "ABCBA" 任何单元格输入公式: =SUMPRODUCT((MID(A1,ROW($1:$99),1)="A")*1) 显示 2 注意: 英文大小写会被视为相同字符 例2 在Excel中如何用函数统计出一个文本字符串中的字符种类的个数?比如A2表格中是“aabb”字符,要在B2中显示出“2”(2种字符,a和b),要用什么样的函数?用LEN函数只能统计字符的个数,不能统计出字符种类的个数。哪位高手能帮我解答一下!谢谢! 普通公式: =SUMPRODUCT(N(FIND(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),A2)=ROW(INDIRECT("1:"&L EN(A2))))) 数组公式:

多组和分类数据的描述性统计分析

§3.2多组和分类数据的描述性统计分析17 ?盒子图 盒子图能够直观简洁地展现数据分布的主要特征.我们在R 中使用boxplot()函数作盒子图.在盒子图中,上下四分位数分别确定中间箱体的顶部和底部,箱体中间的粗线是中位数所在的位置.由箱体向上下伸出的垂直部分为“触须”(whiskers),表示数据的散布范围,其为1.5倍四分位间距内距四分位点最远的数据点.超出此范围的点可看作为异常点(outlier). §3.2多组和分类数据的描述性统计分析 在对于多组数据的描述性统计量的计算和图形表示方面,前面所介绍的部分方法不能够有效地使用,例如许多函数都不能直接对数据框进行操作.这时我们需要一些其他的函数配合使用. 1.图形表示: ?散点图:前面介绍的plot,可直接对数据框操作.此时将绘出数据框中所对应的所有变量两两之间的散点图.所做图框中第一行的散点图是以第一个变量为纵坐标,分别以第二、三...个变量为横坐标的散点图.这里数据举例说明. library(DAAG);plot(hills) ?盒子图:前面介绍的boxplot,亦可直接对数据框操作,其在同一个作图区域内画出各组数的盒子图.但是注意,此时由于不同组数据的尺度可能差别很大,这样的盒子图很多时候表达出来不是很有意义.boxplot(faithful).因此这样做比较适合多组数据具有同样意义或近似尺度的情形.例如,我们想做某一数值变量在某个因子变量的不同水平下的盒子图.我们可采用类似如下的命令: boxplot(skullw ~age,data=possum),亦可加上参数horizontal=T,将该盒子图横向放置. boxplot(possum$skullw ~possum$sex,horizontal=T) ?条件散点图:当数据集中含有一个或多个因子变量时,我们可使用条件散点图函数coplot()作出因子变量不同水平下的多个散点图,当然该方法也适用于各种给定条件或限制情形下的作图.其调用格式为 coplot(formula,data)比如coplot(possum[[9]]~possum[[7]] possum[[4]]),或 coplot(skullw ~taill age,data=possum); coplot(skullw ~taill age+sex,data=possum)

统计子串出现次数

数据结构实验报告 1、问题描述 设计算法,计算一个子串在一个字符串中出现的次数,如果字符串中不存在该子串,计次数为0. 2、基本要求 (1)设计获取字符串及子串的方法。 (2)设计算法统计子串在字符串中出现的次数。 (3)输入:字符串与子串。 (4)输出:字符串、子串及子串在字符串中出现的次数。 3.数据结构设计 typedef struct { char *ch; int length; }hstring; 4.串的基本操作 status strassign(hstring *t,char *cha)//串分配函数 { char *c; int i,j; for(i=0,c=cha;*c;++i,++c); if(!i){t->ch=NULL;t->length=0;} else { if(!(t->ch=(char*)malloc(i*sizeof(char)))) exit (0); for(j=0;jch+j)= *(cha+j); t->length=i; } return 1; } int strcompare(hstring *s,hstring *t)//串比较函数 { int i; for(i=0;i<(s->length)&&i<(t->length);++i) if(s->ch[i]!=t->ch[i]) return s->ch[i]-t->ch[i];

return s->length-t->length; } status concat(hstring *t,hstring s1,hstring s2)//串连接函数 { int i,j; t->length=s1.length+s2.length; if(!(t->ch=(char*)malloc(t->length*sizeof(char)))) exit (0); for(i=0;ich+i)=*(s1.ch+i); for(j=0;jch+i+j)=*(s2.ch+j); return 1; } status substring(hstring *sub,hstring s,int pos,int len) //求子串{ int i; if(pos<1||pos>s.length||len<0||len>s.length-pos+1) { sub->length=0; sub->ch=NULL; return 0; } if(!len){sub->ch=NULL;sub->length=0;} else { if(!(sub->ch=(char*)malloc(len*sizeof(char)))) exit (0); for(i=0;ich+i)=*(s.ch+pos-1+i); sub->length=len; } return 1; } status printstring(hstring s) { int i; if(!s.ch) {printf("over the zone\n"); return 0;} for(i=0;i

(完整版)初中电学计算题型分类汇总

一轮复习 电学计算专题复习 欧姆定律数学表达式 I=U/R 电阻的定义式 串联电路: 电流:文字:串联电路中各处电流都相等。 公式:I=I 1=I 2=I 3=……In 电压:文字:串联电路中总电压等于各部分电路电压之和。 公式:U=U 1+U 2+U 3+……Un 电阻:文字:串联电路中总电阻等于各部分电路电阻之和。 公式:R=R 1+R 2+R 3+……Rn 分压定律:文字:串联电路中各部分电路两端电压与其电阻成正比。 公式:U 1/U 2=R 1/R 2 U 1:U 2:U 3:…=R 1:R 2:R 3:… 并联电路: 电流:文字:并联电路中总电流等于各支路中电流之和。 公式:I=I 1+I 2+I 3+……In 电压:文字:并联电路中各支路两端的电压都相等。 公式:U=U 1=U 2=U 3=……Un 电阻:文字:并联电路总电阻的倒数等于各支路电阻倒数之和。 公式:1/R=1/R 1+1/R 2+1/R 3+……1/Rn 求两个并联电阻R 1.R 2的总电阻R= 分流定律:文字:并联电路中,流过各支路的电流与其电阻成反比。 公式:I 1/I 2=R 2/R 1 电功: 计算公式:W=UIt =Pt (适用于所有电路) 对于纯电阻电路可推导出:W= I 2Rt= U 2 t/R ①串联电路中常用公式:W= I 2 Rt W 1:W 2:W 3:…Wn=R 1:R 2:R 3:…:Rn ②并联电路中常用公式:W= U 2 t/R W 1:W 2= R 2:R 1 ③无论用电器串联或并联。计算在一定时间所做的总功 常用公式W= W 1+W 2+…Wn 电功率: 电功率计算公式:P=UI=W/t (适用于所有电路) 对于纯电阻电路可推导出:P= I 2R= U 2 /R ①串联电路中常用公式:P= I 2 R P 1:P 2:P 3:…Pn=R 1:R 2:R 3:…:Rn ②并联电路中常用公式:P= U 2 /R P 1:P 2= R 2:R 1 ③无论用电器串联或并联。计算总功率 常用公式P= P 1+P 2+…Pn 电热 焦耳定律计算公式:Q=I 2 Rt (适用于所有电路) 对于纯电阻电路可推导出:Q =UIt= U 2 t/R=W=Pt ①串联电路中常用公式:Q= I 2 Rt 。Q 1:Q 2:Q 3:…Qn=R 1:R 2:R 3:…:Rn 并联电路中常用公式:Q= U 2 t/R Q 1:Q 2= R 2:R 1 ②无论用电器串联或并联。计算在一定时间所产生的总热量 常用公式Q= Q 1+Q 2+…Qn ③分析电灯、电炉等电热器问题时往往使用:Q= U 2 t/R=Pt R = ρ S L

如何用EXCEL统计某字符或关键字出现次数

excel为我们解决了很多财务报表上的问题,极大地提高了我们的工作效率,节省了工作时间。并且能够保质保量的完成繁琐的财务工作。不仅在财务应用上,在学生时代,我们也会在平常的考试中使用到excel办公软件。 问题:原始数据区域为A1:A5,每个单元格中包含不同或相同的文本,要根据需求求某个字符或关键字在各单元格文本中出现的次数总和。 答案:接下来将是解决这个问题的答案。 1、原始数据区域为A1:A5,每个单元格中包含不同或相同的文本,要根据需求求某个字符或关键字在各单元格文本中出现的次数总和。 2、首先,求北京出现的次数(整个单元格内容等于北京)。我们输入公式: =COUNTIF(A1:A5,北京) 结果返回1,因为源数据中只有A1单元格整个文本内容是北京。 3、然后,求A1:A5文本中包含北京这个关键词的单元格数量。我们输入公式:=COUNTIF(A1:A5,*北京*) 结果返回2,因为A1和A3都包含北京这个关键词。 4、最后,求A1:A5个单元格文本中京字出现的总次数。我们输入公式:=SUMPRODUCT((LEN(A1:A5)-LEN(SUBSTITUTE(A1:A5,京,)))) 结果返回3,因为A1,A3和A4这三个单元格都包含京字。如果一个单元格中包含两个京字也是会被统计出来的。 5、下面具体解释一下第4步中的公式用法。首先看一下SUBSTITUTE()函数。SUBSTITUTE()函数语法是这样的:SUBSTITUTE(源数据,要替换的内容,替换的结果)。比如:SUBSTITUTE(A1,京,)意思是把A1中的所有京字都替换成空。 6、LEN()函数返回一个文本的长度,比如说LEN(A1)就返回A1的单元格内容是几个字符。 7、LEN(SUBSTITUTE(A1,京,))返回的结果是A1单元格文本将京字都替换成空以后的文本长度。 8、A1单元格原字符长度减去把京字替换成空的文本长度,结果就是京字在A1单元格文本中出现的总次数。 9、最后,用SUMPRODUCT函数将A1:A5中各自出现的京字次数加和就得到了京字在原始

数据结构字符统计

实验一:字符分类频率统计 一、实验名称: 字符分类频率统计 二、实验目的: 将给定的字符串按数字字符,字母字符,其它字符三类进行链式分类存储并且打印出来。 三、实验内容及要求: 将给定的字符串按数字字符,字母字符,其它字符三类进行分类存储,统计各类字符出现的总个数。 四:概要设计: void Mylist::Insert(char x) { Node *p,*q; p=first; while (p->next&&p->next->cnext; if(p->next&&p->next->c==x) p->next->count++; else { q=new Node; q->c=x; q->count=1; q->next=p->next; p->next=q; } first->count++; } 五:详细程序 #include using namespace std; #define Maxsize 255 struct Node

{ char c; int count; Node *next; }; class Mylist { private: Node *first; public: Mylist(); void Insert(char x); void PrintList(); }; Mylist::Mylist() { first=new Node; first->next=NULL; first->count=0; } void Mylist::PrintList() { Node *p; p=first->next; while (p) { cout<< p->c<<":["<count<<"]"<<" "; p=p->next; } cout<count<<"\n"; } void Mylist::Insert(char x) { Node *p,*q; p=first; while (p->next&&p->next->cnext; if(p->next&&p->next->c==x) p->next->count++; else { q=new Node; q->c=x; q->count=1;

题目__分类统计字符个数___

实验题目__分类统计字符个数___ 实验三 一、实验目的与要求 学习用汇编语言编写与设计分支循环程序。 题目:分类统计字符个数COUNT_CHAR 二、实验内容 程序接收用户键入的一行字符(字符个数不超过80个,该字符串用回车符结束),并按字母、数字及其它字符分类计数,然后将结果存入以letter、digit和other为名的存储单元中。 data segment b db 100,0,100 dup(?),'$' m1 db 'input a string:$' m2 db 'numbers of digital:$';数字字符个数 m3 db 'numbers of word:$';字母字符个数 m4 db 'other char:$';其它字符个数 letter db 0 digital db 0 other db 0 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax MOV ES,AX mov dx,offset m1 mov ah,09h int 21h call crif mov dx,offset b

int 21h mov di,offset B INC DI MOV CL,[DI] MOV CH,0 XOR BX,BX nextcmp:INC di mov al,[di] cmp al,'0' jl d4 cmp al,'9' jg d4 inc bl;计数器AG:LOOP nextcmp JMP DOIT d4:cmp al,'a' jl AG1 cmp al,'z' jg AG1 inc bh ag1:CMP AL,'A' JL AG CMP AL,'Z' JG AG INC BH jmp AG DOIT:PUSH BX mov dx,offset m2 mov ah,09h int 21h POP BX mov al,bl mov digital,al call disp8 PUSH BX call crif mov dx,offset m3

java用Map统计字符串中每个字符出现的次数

package com.baidu.oct4; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; /*用 Map统计字符串中每个字符出现的个数 * (可以加限制条件,只统计英语字母或者汉字等) * */ public class TreeSetDemo { public static void main(String [] args) { String str = "abcdefyadhisn,xiednefmecd casdxsdffg@$%tjukdfds,生活是一杯酒,生活是一首诗"; String count =getCount(str); System.out.println(count); } // 获取统计的方法 public static String getCount(String str) { char [] ch = str.toCharArray(); Map map = new TreeMap(); for (int i = 0; i < ch.length; i++) { // 只统计里面英语字母的个数 // if(!(ch[i]>'a'&&ch[i]<'z'||ch[i]>'A'&&ch[i]<'Z')) // continue; // 只统计其中汉字个数 // // if(!(ch[i]>='一'&&ch[i]<='龥')) // \u4e00 \u9fa5 // continue; // 获取字符数组顺序对应的值 Integer value = map.get(ch[i]); int count=1; if(value!=null) {

微机原理课程设计--字符串分类统计

微机原理课程设计报告 题目:字符串分类统计 学生姓名:周喜民 学号:32 专业班级:计0601 同组姓名: 赵晏龙陈顺 指导教师:范轶彦 设计时间:2010.1.4-2010.1.10 指导老师意见: 评定成绩: 签名: 日期:

目录 一、需求分析 ...................................................................................... 错误!未指定书签。 二、系统设计 ...................................................................................... 错误!未指定书签。 1. 内容 ............................................................................................. 错误!未指定书签。 2.思路............................................................................................ 错误!未指定书签。 三、系统总体框图.......................................................................... 错误!未指定书签。 四、调试分析 ...................................................................................... 错误!未指定书签。 五、实验结果 ...................................................................................... 错误!未指定书签。 六、程序设计 ...................................................................................... 错误!未指定书签。 七、总结 .................................................................................................. 错误!未指定书签。 八、参考文献 ...................................................................................... 错误!未指定书签。

C语言题库(分类)

1将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 2把形参str所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动 3将一个数字字符串转换为一个整数 4将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。 5将ss所指字符串中所有下标为奇数位置上的字母转换为大写 6统计一行字符串中单词的个数,作为函数值返回。 7删除一个字符串中指定下标的字符。orig指向原字符串,删除后存放在result所指中,flg 中存放指定的下标。 8统计一个长度为2的字符串在另一个字符串中出现的次数。 9移动字符串中的内容,移动的规则是把第1~m个字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 10删除字符串中的所有空格。 11将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。12定字符出现的次数,并存到b数组中,其中:字符'+'、'-'、'*'、'/'、'&'出现的次数分别存放到b[0]、b[1]、b[2]、b[3]、b[4]中 13判断字符串是否为回文?返回1,主函数中输出:YES,否则返回0,主函数中输出NO。14将放在字符串数组中的M个字符串,按顺序合并组成一个新的字符串。 15对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。16来删除字符串中的所有空格。 例如:输入的字符串是absd f aas z1o67,则输出为absdfaasz1o67。 17把s串中的内容逆置。 18删除一个字符串中指定的字符。设有如下的字符串:turbo c and borland vc++, 19将两个字符串连接(不得使用库函数strcat)把s2所指的字符串连接到s1所指字符串后。20统计在tt所指字符串中'a'到'z' 26个小写字母各自出现的次数,并依次放在pp所指数组中。 1它的功能是:将字符串中的前导*号全部移到字符串的尾部。 2除了字符串前导和尾部的*号之外,将串中其他*号全部删除 3将字符串中的前导*号全部删除,中间和尾部的*号不删除。 4使字符串中前部的*号不得多余n个;若多余n个,删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 5将字符串尾部的*号全部删除,前面和中间的*号不删除。 6删除字符串中所有的*号。 7 除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。char *t=a; for(;t<=p;t++) if(*t!='*') *(a++)=*t; for(;*t!='\0';t++) *(a++)=*t; *a='\0';

相关文档
相关文档 最新文档