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

利用数组编写
2024-12-04 10:36:44
推荐回答(3个)
回答1:

源程序代码如下:

#include "pch.h"

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

#include 

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

#include     //对空白字符的判断,调用了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;

}

回答2:

//输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include
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;
}

回答3:

#include #include
#include
#include
using namespace std;
int main()
{
map m_Count;
string str;
cout<<"请输入字符串!!"< cin>>str;

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

map::iterator iter;
for (iter = m_Count.begin(); iter != m_Count.end();++iter)
{
cout<first<<":"<second< }
return 0;
}