用c语言编写一个程序,统计输入的字符串中最大连续重复字母的个数

来自:    更新日期:早些时候
用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数~

源程序代码如下:
#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()) != '
')//连续输入字符直到输入回车结束
{
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
小写字母个数:%d
大写字母个数:%d
",num_count, littlealp_count, bigalp_count);
printf("空格个数:%d
其他字符个数:%d
", 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
",num_count);
printf("space_count=%d
",space_count);
printf("other_count=%d
",other_count);
return 0;
}

#include
#define N 100
void count(char str[],int times[]) //统计小写字符出现次数
{
int i;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='a' && str[i]<'a'+26) //只统计小写字符
times[str[i]-97]++; //字符a的ascii码为97,str[i]-97正好将26个字母对应在times数组的26个位置上。
}
}
int main()
{
char str[N];
int i,times[26]; //time数组中每一个元素代表一个小写字符,其值代表字符的出现次数
for(i=0;i<26;i++) //初始化,所有字符次数置0
times[i]=0;
scanf("%s",str); //读入字符串
count(str,times); //调用函数统计次数,让times装载统计结果
for(i=0;i<26;i++) //输出结果,小写字符a的ascii码为97.
{
printf("%c%d
",i+97,times[i]);
}
return 0;
}

C语言实现如下:

#include<stdio.h>
#include<string.h>
void main()
{
char c[1000];
int f[1000],max=0,len,n=0,m[256]={0},i;
gets(c);
len=strlen(c);
f[0]=1;
for (i=1;i<len;i++)//最大连续重复字母可能不止一个。
{
if (c[i]==c[i-1]) f[i]=f[i-1]+1;
else f[i]=1;
if (f[i]>max) max=i;
}
printf("字符串中最大连续重复字母:");
for (i=0;i<len;i++)
if ((f[i]==f[max])&&(!m[c[i]])) 
{
m[c[i]]=1;
printf("%c ",c[i]);
}
printf("
最大连续重复字母串的长度:%d
",f[max]);
}

样例输入:

HHHHHdfeifiiiii

样例输出:

字符串中最大连续重复字母:H i

最大连续重复字母串的长度:5



#include<stdio.h>
int main()
{
char c[200] = {'\0'};
scanf("%s",c);
int i;
int sum = 0;
char max = '\0';
for(i = 0; i < 200; i++)
{
char buf = c[i];
int j;
int k = 0;
for(j = i; j < 200; j++)
{
if(c[j] == '\0')
break;
if(buf == c[j])
k++;
}
if(k > sum)
{
sum = k;
max = buf;
}
}
printf("%c出现的最多,出现了%d次\n",max,sum);
return 0;
}

C语言实现如下:
#include<stdio.h>
#include<string.h>
void main()
{
char c[1000];
int f[1000],max=0,len,n=0,m[256]={0},i;
gets(c);
len=strlen(c);
f[0]=1;
for (i=1;i<len;i++)//最大连续重复字母可能不止一个。
{
if (c[i]==c[i-1]) f[i]=f[i-1]+1;
else f[i]=1;
if (f[i]>max) max=i;
}
printf("字符串中最大连续重复字母:");
for (i=0;i<len;i++)
if ((f[i]==f[max])&&(!m[c[i]]))
{
m[c[i]]=1;
printf("%c ",c[i]);
}
printf("\n最大连续重复字母串的长度:%d\n",f[max]);
}
样例输入:
HHHHHdfeifiiiii
样例输出:
字符串中最大连续重复字母:H
i
最大连续重复字母串的长度:5


用c语言编写一个程序,统计输入的字符串中最大连续重复字母的个数视频

相关评论:
  • 18844196024C语言:编写程序统计从键盘输入的字符串s中各元音字母(即A.E.U.I.O...
    杜秀范include "stdio.h"int count(char c[], char p){ int i, count = 0;for (i = 0; c[i] != '\\0'; i++)if (c[i] == p || c[i] == p + 32)count++;return count;} int main(void){ int i;char c[50];int b[5] = { 0 };gets(c);printf("A个数%d\\n", ...

  • 18844196024用c语言写一个程序,从键盘上连续输入字符,统计其中大写字母的个数,直...
    杜秀范运行截图:include<stdio.h>int main(){int n=0; char c; while((c=getchar())!='\\n') if(c>='A'&&c<='Z')n++; printf("%d\\n",n); return 0;}

  • 18844196024c语言 对任意输入的字符串,统计其中的大写字母和小写字母的个数_百度知...
    杜秀范&&sen[i]<'z')a++;elseif(sen[i]>='0'&&sen[i]<='9')num++;elseif(sen[i]=='')space++;else other++;} printf("该字符串共有%d个字符\\n\\n\\t大写字母%d个\\n\\t小写字母%d个\\n\\t数字%d个\\n\\t空格%d个\\n\\t其他字符%d个\\n\\n",strlen(sen),A,a,num,space,other);} ...

  • 18844196024C语言题目,编写程序统计输入字符的行数,用!号结束,!号所在行不计入行...
    杜秀范if(ch='n')这句话是给ch重新赋值了,所以无论你输入什么,到这里都会变成'n'所以就不会退出 应该改为 if(ch=='\\n')

  • 18844196024编写一个C语言程序:从键盘读入一行文本,统计每个英文字母出现的次数_百 ...
    杜秀范一、算法:1、循环读取字符,直到换行为止。对于每个字符,执行以下流程。2、判断是否为英文字母,即小写和大写两种。3、如果是英文字母,则统计个数。输入部分,可以存为数组,也可以每输入一个字符计算一次。二、参考代码:include <stdio.h>int main(){ int c; int cnt[52]={0}; whil...

  • 18844196024用C语言编写一程序,统计N个学生的成绩信息。
    杜秀范printf("第%d个学生:\\n",i+1);stud[i].mc=i+1;printf("输入学号:");scanf("%d",&stud[i].number);printf("输入姓名:");scanf("%s",stud[i].name);printf("输入数学成绩:");scanf("%lf",&stud[i].math);printf("输入英语成绩:");scanf("%lf",&stud[i].English);printf("...

  • 18844196024用C语言编写一段程序,题目是输入一段英文,统计其中的字母,单词和句子的...
    杜秀范统计字母,意思就是看当前的字符ASCII码是否介于A—Z或a—z之间;统计单词,意思就是看当前的字符ASCII码是否为空格,因为空格意味着单词的结束;统计句子,意思就是看当前的字符ASCII码是否为句号;ASCII码表如下:http:\/\/www.360doc.com\/content\/10\/0914\/12\/3357352_53546956.shtml ...

  • 18844196024使用C语言编写源程序完成输入2000以内奇数的个数偶数的个数以及奇数的...
    杜秀范以下是使用C语言编写源程序统计2000以内奇偶数的个数、和的实现过程:```c include <stdio.h> int main(){ int i, oddCount = 0, evenCount = 0, oddSum = 0, evenSum = 0;for (i = 1; i <= 2000; i++) { if (i % 2 == 0) { \/\/ 判断是否为偶数 evenCount++;evenSum ...

  • 18844196024用c语言编写一个程序计算字符串中值为x(x由键盘输入)的字符个数。
    杜秀范include <stdio.h> int main(void){ char c[128];int i = 0, sum = 0;printf("请输入字符串\\n");do { scanf("%c", &c[i]);if (c[i] == 'x') sum++;} while ('\\n' != c[i++]);printf("x的个数是%d\\n", sum);return 0;} 运行结果:请输入字符串 wo x ni ...

  • 18844196024编写一个C语言程序,统计一个班(最多50人)的学生成绩,要求实现以下功能...
    杜秀范题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出 平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中.1.程序分析:2.程序源代码:include "stdio.h"struct student { char num[6];char name[8];int score[3];float avr;} stu[5...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网