用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数

利用数组编写... 利用数组编写 展开
 我来答
珈蓝惜梦qF
2019-10-12 · TA获得超过654个赞
知道答主
回答量:33
采纳率:0%
帮助的人:1.2万
展开全部

源程序代码如下:

#include "pch.h"

#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要

#include<stdio.h

int main()

{     

char c = 0;//定义输入字符变量

int num_count = 0;//数字个数

int bigalp_count = 0;//大写字母个数

int littlealp_count = 0;//小写字母个数

int emp_count = 0;//空格个数

int els_count = 0;//其他字符个数  

while((c = getchar()) != '\n')//连续输入字符直到输入回车结束  

{        

if((c >= '0')&&(c <= '9'))//判断是否是数字     

{           

num_count ++ ;   

}          

else if ((c >= 'a') && (c <= 'z'))//判断是否是小写字母 

{

littlealp_count++;

}

else if ((c >= 'A') && (c <= 'Z'))//判断是否是大写字母

{

bigalp_count++;

}

else if(c == ' ')//判断是否是空格   

{          

emp_count ++;  

}          

else //判断是否其他字符   

{             

els_count ++;   

}    

}    

//输出个数统计值

printf("数字个数:%d\n小写字母个数:%d\n大写字母个数:%d\n",num_count, littlealp_count, bigalp_count);

printf("空格个数:%d\n其他字符个数:%d\n", emp_count, els_count);

return 0;

}

程序运行结果如下:



扩展资料:

其他实现方法:

#include <stdio.h>

#include <ctype.h>    //对空白字符的判断,调用了isspace()函数,所以要调用头文件

int main()

{

   char str[20];     //这块对输入有所限制了

   int num_count=0;

   int space_count=0;

   int other_count=0;

   char *p=str;

   gets(str);   //接收字符串

   while(*p)

   {

     if(*p>='0'&&*p<='9')

     {

        num_count++;

     }

     else if(isspace(*p))    //用isspace函数来判断是不是空白字符

     {

        space_count++;

     }

     else

     {

        other_count++;

     }

     p++;

   }

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

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

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

  return 0;

}
duanbiaowuhao
推荐于2017-09-02 · TA获得超过393个赞
知道小有建树答主
回答量:599
采纳率:50%
帮助的人:220万
展开全部
//输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include<stdio.h>
int main(void)
{
char ch;
int a=0,b=0,c=0,d=0;
while((ch=getchar())!='\n')
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
a++;
else if(ch>='0'&&ch<='9')
b++;
else if(ch==' ')
c++;
else
d++;
}
printf("字母=%d\n数字=%d\n空格=%d\n其他字符=%d\n",a,b,c,d);
return 0;
}
追问
你遍的我没学过唉,能用数组遍吗
追答
大哥,这还在数组前面呢,你仔细看看,其实就是个简单的while循环,比for都简单呢,如果你数组会的话,这个很好懂的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TrustLove520
2013-04-17 · 超过23用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:58.1万
展开全部
#include <vector>#include <iostream>
#include <string>
#include <MAP>
using namespace std;
int main()
{
map<char,int> m_Count;
string str;
cout<<"请输入字符串!!"<<endl;
cin>>str;

for (size_t i = 0;i < str.size();++i) {
m_Count[str[i]]++;
}

map<char,int>::iterator iter;
for (iter = m_Count.begin(); iter != m_Count.end();++iter)
{
cout<<iter->first<<":"<<iter->second<<endl;
}
return 0;
}
追问
你编的我没学过能用数组编吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式