C语言编程:输入一串英文字母,统计每个字母(不区分大小写)出现的次数

如题所述

#include<iostream>

#include<string>

using namespace std;

int main()

{

char str[50];

int n=0;

char *p;

p=str;

cout<<"请输入字符串:"<<endl;

cin>>str;

for(int i=0;*p!='\0';p++)

{

if(('a'<=*p && *p<='z') || ('A'<=*p && *p<='Z'))

{

n++;

cout<<*p<<" ";

}

else

break;

}

cout<<"字符串的数量为:"<<n<<endl;

return 0;

}

扩展资料:  

printf用法:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

inta=1234;

printf("a=%d\n",a);

输出结果为a=1234。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-30
#include<stdio.h>

void main()
{
char ch; //ch用来每次接收一个字符
int i,s[26]={0}; //数组s[]用来统计每个小写字母的个数

printf("please input a string:\n");
scanf("%c",&ch);
while(ch!='\n') //输入一行字符,以回车键结束
{
if(ch>'A'&&ch<'Z') //遇到大写字母时,转换成小写来处理
ch+=32;
s[ch-'a']++; //0~25对应a~z
scanf("%c",&ch);
}

printf("\n");
for(i=0;i<26;i++)
if(s[i]) //只输出输入过的字母统计
printf("%c:%d\n",(char)(i+'a'),s[i]);
//(char)(i+'a')用强制类型转换,输出对应字母
}本回答被提问者和网友采纳
相似回答