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

来源:互联网 发布:淘宝盗版书怎么举报 编辑:程序博客网 时间:2024/05/21 09:28
第一种情况:
描述:写出一个程序,接受一个有字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
知识点:字符串,函数,指针  
题目来源:内部整理  练习阶段:初级  运行时间限制:10Sec 内存限制:128MByte 输入:输入一个有字母和数字组成的字符串,和一个字符。  输出:输出输入字符串中含有该字符的个数。 样例输入:ABCDEFA                   样例输出: 1源程序:

#include<iostream>using namespace std;#define MAXSIZE 100int 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;elsechx=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 100int 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-=\\][                    样例输出: 2631012源程序:

#include<iostream>#include<cstring>using namespace std;#define MAXSIZE 100int 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;}
运行结果:


0 0
原创粉丝点击