华为初级——字符个数统计(三种情况)

第一种情况:
描述:写出一个程序,接受一个有字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
知识点:字符串,函数,指针  
题目来源:内部整理  
练习阶段:初级  
运行时间限制:10Sec 
内存限制:128MByte 
输入:输入一个有字母和数字组成的字符串,和一个字符。  
输出:输出输入字符串中含有该字符的个数。 
样例输入:
ABCDEF
A                   
样例输出: 1
源程序:
#include<iostream>
using namespace std;
#define MAXSIZE 100
int main()
{
	char c[MAXSIZE];
	char ch;
	int getCharCount(char c[],char ch);
	gets(c);
	ch=getchar();
	int count;
	count=getCharCount(c,ch);
	cout<<count<<endl;
	return 0;
}
int getCharCount(char c[],char ch)
{
	int i=0;
	char *p;
	char chx;
	p=c;
	while(*p!=‘\0‘)
	{
		if(ch>=‘A‘&&ch<=‘Z‘)//不区分大写小写
			chx=ch+32;
		else
			chx=ch-32;
		if(*p==ch||*p==chx)
			i++;
		p++;
	}
	return i;
}

运行结果:

第二种情况:
描述:编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
知识点:字符串,函数,指针  
题目来源:内部整理  
练习阶段:初级  
运行时间限制:10Sec 
内存限制:128MByte 
输入:输入N个字符,字符在ACSII码范围内(0~127)。  
输出:输出字符的个数。  
样例输入:abc                    
样例输出:3
源程序:
#include<iostream>
using namespace std;
#define MAXSIZE 100
int main()
{
	char c[MAXSIZE];
	int getCharCount(char c[]);
	gets(c);
	int count;
	count=getCharCount(c);
	cout<<count<<endl;
	return 0;
}
int getCharCount(char c[])
{
	char b[MAXSIZE],k=0;
	int i=0,j=0;
	b[0]=c[0];//把新字符存入另一个数组中。
	int flag;
	for(i=1;c[i]!=‘\0‘;i++)
	{
		flag=1;//标识
		for(k=0;k<j+1;k++)//j为b数组的下标,j+1就是b数组的长度。
		{
			if(c[i]==b[k])flag=0;//flag为标识,若当前字符已存在于b数组,则flag=0;
		}
		if(flag)//当前字符c[i]不存在与b数组,就把c[i]存入b数组中。
		{
			j=j+1;
			b[j]=c[i];
		}
	}
	return j+1;
}

运行结果:

第三种情况:
描述:输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。
    /**
     * 统计出英文字母字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 英文字母的个数
     */
    public static int getEnglishCharCount(String str)
    {
        return 0;
    } 
    /**
     * 统计出空格字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 空格的个数
     */
    public static int getBlankCharCount(String str)
    {
        return 0;
    }   
    /**
     * 统计出数字字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 英文字母的个数
     */
    public static int getNumberCharCount(String str)
    {
        return 0;
    }   
    /**
     * 统计出其它字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 英文字母的个数
     */
    public static int getOtherCharCount(String str)
    {
        return 0;
    } 
知识点:字符串  
题目来源:内部整理  
练习阶段:初级  
运行时间限制: 10Sec 
内存限制:128MByte 
输入:输入一行字符串,可以有空格  
输出:统计其中英文字符,空格字符,数字字符,其他字符的个数 
样例输入:1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;0-=\\][                    
样例输出: 
26
3
10
12
源程序:
#include<iostream>
#include<cstring>
using namespace std;
#define MAXSIZE 100
int main()
{
	int getEnglishCharCount(string str);
	int getBlankCharCount(string str);
	int getNumberCharCount(string str);
	int getOtherCharCount(string str);
	char str[MAXSIZE];
	gets(str);
	int Eng_count,Bla_count,Num_count,Oth_count;
	Eng_count=getEnglishCharCount(str);
	Bla_count=getBlankCharCount(str);
	Num_count=getNumberCharCount(str);
	Oth_count=getOtherCharCount(str);
	cout<<Eng_count<<endl;
	cout<<Bla_count<<endl;
	cout<<Num_count<<endl;
	cout<<Oth_count<<endl;
	return 0;
}
int getEnglishCharCount(string str)
{
	int i=0,engcount=0;
	while(str[i]!=‘\0‘)
	{
		if((str[i]>=‘A‘&&str[i]<=‘Z‘)||(str[i]>=‘a‘&&str[i]<=‘z‘))
			engcount++;
		i++;
	}
	return engcount;
}
int getBlankCharCount(string str)
{
	int i=0,blacount=0;
	while(str[i]!=‘\0‘)
	{
		if((str[i]==‘ ‘))
			blacount++;
		i++;
	}
	return blacount;
}
int getNumberCharCount(string str)
{
	int i=0,numcount=0;
	while(str[i]!=‘\0‘)
	{
		if(str[i]>=‘0‘&&str[i]<=‘9‘)
			numcount++;
		i++;
	}
	return numcount;
}
int getOtherCharCount(string str)
{
	int i=0;
	int e,b,n;
	int othcount;
	e=getEnglishCharCount(str);
	b=getBlankCharCount(str);
	n=getNumberCharCount(str);
	while(str[i]!=‘\0‘)
		i++;
	othcount=i-e-b-n;
	return othcount;
}

运行结果:

华为初级——字符个数统计(三种情况),布布扣,bubuko.com

时间: 2024-08-02 07:02:04

华为初级——字符个数统计(三种情况)的相关文章

Tomcat内存溢出的三种情况及解决办法分析

转自 http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147d8c8c4668d4e419ce3b4c413037bfa6663f405a8e906b6075aa1f0ce9f03176370123b5989b8908dcac925f75ce786a6459db0144dc4ee59a1167877bcd06feaf68bce6e732e2e88893880705dd53742bddaccd095b4

转:Tomcat内存溢出的三种情况及解决办法分析

Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. Tomcat内存溢出解决方案 对于前两种

Win10专业版桌面没有图标的三种情况及解决方法

正常情况,用户进入Win10系统桌面的时候会看到administrator文件夹.计算机.回收站.网络等图标,但有朋友进入桌面后什么图标都没有,这是怎么回事,Win10桌面没有图标可以分为三种情况,下面我们来看下这三种情况的具体解决方法. 一.系统图标消失 桌面右键进入个性化窗口,在主题选项找到桌面图标设置,在桌面图标设置中找到你想要显示的系统图标. 二.全部图标消失 这个时候很有可能是网上赌博桌面图标被隐藏起来了,鼠标右键进入查看选项后勾选,显示桌面图标. 三.桌面图标和任务栏一起消失 1.应

链表中插入一个节点的三种情况

在链表中插入一个元素可以分为三种情况: 1.在节点的时候 2.在链表中间的任意位置 3.在链表的最后位置,也可以认为这种情况为追加(这个就留到追加的时候来实现) 下面是代码的实现 SN *Insert_S_Node( SN *head ) /* 传入的参数是被插入链表中的头指针 */ { SN *Insert_Node=NULL, *Dest_Node = NULL; /* Insert_Node是将要做成的新链表中的节点 Dest_Node是要插入的节点*/ INT32 OSM = 1, i3

SSO单点登录三种情况的实现方式详解

单点登录(SSO——Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子系统——百度经验.百度知道.百度文库等等,如果我们使用这些系统的时候,每一个系统都需要我们输入用户名和密码登录一次的话,我相信用户体验肯定会直线下降.当然,对于个人博客这类系统来说根本就用不上单点登录了. 假如,我们的系统很庞大,但是就是这一个系统,并没有什么子系统.这时我们也不需要单点登录.我们需要的是搭建集群环境,这里虽说只有一个系

窗体间传递数据(跨控件跨类),三种情况与处理方法

环境:Qt5.5 MCVS2013 IDE:QtCreator 范例代码下载地址:http://download.csdn.net/detail/shihoongbo/9134859 发现很多Qt的初学者,经常会在“窗体间如何传递数据”的问题上卡住,而网上通常只是简单描述为使用信号与槽(signal& slot)机制来传递 虽然信号与槽的传递方式确实没错,但是却不一定能适用到全部的情况. 所以,总结了窗体间传递数据的三种情况和对应方法: 模型描述:  已知三个窗体,A为B C的父控件,B与C互为

Struts2+Urlrewrite实现伪静态化 demo中介绍了三种情况的配置,下载即可运行。

原文:Struts2+Urlrewrite实现伪静态化 demo中介绍了三种情况的配置,下载即可运行. 源代码下载地址:http://www.zuidaima.com/share/1550463499504640.htm 为大家提供了3种模式的url进行访问,以便应付大家的开发,更多的模式大家可以自行组合. html:http://localhost:8686/Sturts2UrlReWrite/line.html xxx::http://localhost:8686/Sturts2UrlReW

TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)

ISFP是服务中断的指令包,创建ISR的三种情况: 1,一个ISFP包的8条指令就可以满足ISR 2,ISR可以占用多个连续的ISFP(前提是下面的中断没有使用) 3,ISR位于IST之外 上述图中,B IRP表示从可屏蔽中断(INT4~15)中返回(从ISR返回或者从ISFP中返回)的指令.因为B指令有5个cycle的延迟,所以在B跳转指令后加上5个NOP指令,目的是防止CPU执行到其他的程序.如在第一张图中,如果B IRP后面的指令是单cycle指令(如NOP 1),那么CPU会在执行完IN

利用python找出两文件夹里相同的文件并保存在新的文件夹下(分三种情况)

原文件夹A,B,新文件夹C,下图中的情况以图片为例 A:00001.jpg  00002.jpg   00003.jpg  00147.jpg B : 00001.jpg  000000002.jpg   00147.json 第一种情况:找出两文件夹下相同内容的文件,保存并输出到文件夹C 思路:判断内容是否一致,因此需要读取整个文件,判断两者是否一样 由于文件内容错综复杂,而其md5是唯一的,如果两者内容一致,则两者的md5值应该为一样.由于图片是二进制存储,在读取时采用'rb'.这里是对文件