第一种情况:
描述:写出一个程序,接受一个有字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
知识点:字符串,函数,指针
题目来源:内部整理
练习阶段:初级
运行时间限制: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;
}
运行结果: