c语言编程 统计输入多个字符串中每个字串出现的次数

作者&投稿:旗韵 (若有异议请与网页底部的电邮联系)
用C语言编程:在显示器上输入一段字符串,并统计出现字符的个数和各个字符出现的次数~

#include
void main()
{
char c;
int i,letters=0,num[26]={0}; //字符的个数, 26个字符个数初始化为0
printf("请输入一段字符串:
");
while((c=getchar())!='
')
{
if(c>='a'&&c='A'&&c<='Z')
{
letters++;
if(c>='a'&&c<='z') num[c-'a']++;
if(c>='A'&&c<='Z') num[c-'A']++;
}
}
printf("字符的个数:%d
",letters);
printf("每个字符出现的次数:
");
for(i=0;i<26;i++)
{
if(num[i]>0)
printf("字符%c:%d次 ",i+'a',num[i]);
}
}

可以先排序,在遍历统计。
#include #include // 升序字符串src,然后返回char* sort(char *src){ char tem, len = strlen(src); for (int i = 0; src[i]; i++) { for (int j = 0; j src[j+1]) { tem = src[j]; src[j] = src[j+1]; src[j+1] = tem; } } return src;}int main(){ char str[1000], ch; int i = 0, cnt; printf("input a string :"); gets(str); sort(str); // 排序 ch = str[0]; cnt = 1; for (i = 1; str[i]; i++) // 遍历统计 { if (str[i] != ch) { if (cnt) printf("%c has %d.
", ch, cnt); ch = str[i]; cnt = 1; } else cnt++; } if (cnt) printf("%c has %d.
", ch, cnt); return 0;}

/*

请输入字符串:qqwAZXS -=09871<>?!llk

有效长度为:23个字符。

k : 1次。
l : 2次。
q : 2次。
w : 1次。
小写字符l出现的次数最多,共2次。

S : 1次。
X : 1次。
Z : 1次。
大写字符L出现的次数最多,共1次。

1 : 1次。
7 : 1次。
8 : 1次。
9 : 1次。

阿拉伯数字;出现的次数最多,共1次。

其他字符共8个。

Press any key to continue
*/
#include <stdio.h>
#include <string.h>

int main() {
int i,m,len,others = 0;
int LowerQuantity[26] = {0};
int CapQuantity[26] = {0};
int Arab[10] = {0};
char ch,chs[1024];
printf("\n请输入字符串:");
i = 0;
while((i < 1024) && (ch = getchar()) != '\n') {
chs[i] = ch;
i++;
}
chs[i] = '\0';
len = strlen(chs);
printf("\n有效长度为:%d个字符。\n\n",len);
for(i = 0 ; i < len ; i++) {
if((chs[i] >= 'a') && (chs[i] <= 'z')) (LowerQuantity[chs[i] - 'a'])++;
else if((chs[i] >= 'A') && (chs[i] <= 'Z')) (CapQuantity[chs[i] - 'A'])++;
else if((chs[i] >= '0') && (chs[i] <= '9')) (Arab[chs[i] - '0'])++;
else others++;
}
m = LowerQuantity[0];
for(i = 1 ; i < 26 ; i++) {
if(LowerQuantity[i] > 0) printf("%c : %d次。\n",i + 'a',LowerQuantity[i]);
if(LowerQuantity[i] > m) {
m = LowerQuantity[i];
ch = i;
}
}
if(m > 0) printf("小写字符%c出现的次数最多,共%d次。\n\n",ch + 'a',m);
m = CapQuantity[0];
for(i = 1 ; i < 26 ; i++) {
if(CapQuantity[i] > 0) printf("%c : %d次。\n",i + 'A',CapQuantity[i]);
if(CapQuantity[i] > m) {
m = CapQuantity[i];
ch = i;
}
}
if(m > 0) printf("大写字符%c出现的次数最多,共%d次。\n\n",ch + 'A',m);
m = Arab[0];
for(i = 1 ; i < 10 ; i++) {
if(Arab[i] > 0) printf("%c : %d次。\n",i + '0',Arab[i]);
if(Arab[i] > m) {
m = Arab[i];
ch = i;
}
}
if(m > 0) printf("\n阿拉伯数字%c出现的次数最多,共%d次。\n\n",ch + '0',m);
if(others > 0) printf("\n其他字符共%d个。\n\n",others);
return 0;
}

//////////////////////////////////////////////////////////////////////记得结束时要输入000作为判断,当然你可以自己修改
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct word{
int time;
char str[10];
};
struct data{
int words;
word s[30];
};
int ishere(data*p,char*str)
{
for(int i=0;i<p->words;i++)
{
if(strcmp(str,p->s[i].str)==0)
{
p->s[i].time++;
return 1;
}
}
return 0;
}
void f(data*p,char*str)
{
strlwr(str);
if(ishere(p,str)==0)
{
p->words++;
p->s[p->words-1].time=0;
p->s[p->words-1].time++;
strcpy(p->s[p->words-1].str,str);
}
}
void main()
{
data*a;
char str[40];
char s[10];
int i,j;
int n=0;
a=(data*)malloc(sizeof(data));
a->words=0;
printf("Please input your string:\n\n\n");
gets(str);
i=0;
while(str[i]!='0'||str[i+1]!='0'||str[i+2]!='0')
{
j=0;
while(str[i]!=' '&&(str[i]!='0'||str[i+1]!='0'||str[i+2]!='0'))
{
s[j]=str[i];
i++;
j++;
n=1;
}
s[j]='\0';
if((str[i]!='0'||str[i+1]!='0'||str[i+2]!='0'))
{
i++;
}
if(n==1)
{
n=0;
f(a,s);
}
}

for(i=0;i<a->words;i++)
{
printf("%-8s",a->s[i].str);
}
printf("\n");
for(i=0;i<a->words;i++)
{
printf("%-8d",a->s[i].time);
}

}

int main ( )
{
char c;
int num=0,word=0;
printf("请输入一行字符:\n");
while((c=getchar( ))!='\n')
{
if (c==' ') word=0;
else if (word==0)
{
word=1;
num++;
}
}
printf("单词数=%d\n",num);
return 0;
}


白云区19437087547: c语言编程 统计输入多个字符串中每个字串出现的次数 -
泣衫复方: int main ( ) { char c; int num=0,word=0; printf("请输入一行字符:\n"); while((c=getchar( ))!='\n') { if (c==' ') word=0; else if (word==0) { word=1; num++; } } printf("单词数=%d\n",num); return 0; }

白云区19437087547: C语言 输入多个字串 统计 每个字串出现了多少次 -
泣衫复方: #include struct string{ int num; char str[20];};int main(void){ int i; char instr[20]; struct string input[10]; for(...

白云区19437087547: C语言 输入多个字串 统计 每个字串出现了多少次 -
泣衫复方: #include <stdio.h>#include <string.h> struct string { int num; char str[20]; }; int main(void) { int i; char instr[20]; struct string input[10]; for(i=0;i<10;i++) { input[i].num = 0; //input[i].str[20] = ""; } scanf("%s",instr); while(strcmp(instr,"exit")) //输入exit...

白云区19437087547: c语言作业:输入一串字符串,以'!'结束,不分大小写,统计其中每种英文字符出现的次数. -
泣衫复方: #include int main() { char c[256]; int i=0; while ((c[i++] = getchar()) != '\n'); c[i]='\0'; i=0; printf ("%s", c); while(c[i]) { if ('a'{ c[i] -= 32; } else if ('a'{ c[i] += 32; } i++; } printf ("%s", c); return 0; }

白云区19437087547: 在C语言中,如果要统计输入的字符串中每个字符出现的次数,改程序该怎么写,求解 -
泣衫复方: #include <stdio.h> int main() { char str[256]; int ascii[256]={0}; printf("请输入一个字符串:"); gets(str); for(int i=0; i<sizeof(str); i++) ascii[(int)str[i]]++; for(i=0; i<256; i++) if(ascii[i]!=0) printf("%c出现:%d次\n",(char)i,ascii[i]); return 0; }

白云区19437087547: C语言(简单的)编写程序输入任意一串字符统计其中大写字母,小写字母.数字及其他字符的个数 -
泣衫复方: #include <stdio.h> void count(char*); int main() { char ch[100]={0}; scanf("%s", ch); count(ch); return 0; } void count(char* ch) { //分别记录大写,小写,数字的个数. int big=0, small=0, character=0,qita = 0; while (*ch) { if ((*ch>='A')&&(*ch<='Z')) { +...

白云区19437087547: C语言,谁能给我个算法,实现对输入字符串中各个字母出现的次数的统计 -
泣衫复方: #include "stdio.h" //统计每个字母出现的次数 #include "string.h" //注意函数参数中a的写法,是个指针! void fun(char *p,int *a) {int i;for(i=0;i<26;i++){a[i]=0;}while(*p){a[*p-'a']++;p++;}return ;//注意无类型返回值返回的写...

白云区19437087547: c语言编程.从标准输入设备上输入一个字符串,分别统计其中每个数字,空格,字母及其他字符出现的次数. -
泣衫复方: 代码如下:#include int main(){ char stringss[1024]; int i,num[4]={0}; int j = 0; char c; while((c=getchar()) !='\n'){ stringss[j] = c; j++; } for(i=0;i{ if(stringss[i]>='0'&&stringss[i]num[0]++; else if(stringss[i]==' ')//统计空格 num[1]++; else if(stringss[i]>='A'&&...

白云区19437087547: 用C语言编写程序,统计从终端输入的字符中每个大写字母的个数,用#号作为输入结束标记 -
泣衫复方: #include"stdio.h" intmain() { inti=0,j,num=0; chars[10]; while(s[i-1]!='#') { scanf("%c",&s[i]); i++; } for(j=0;j<i;j++) if(s[j]>='A'&&s[j]<='Z') num++; printf("%d\n",num); return0; } 扩展资料 利用while语句,条件为输入的字符不为'\n'进行统计字母#...

白云区19437087547: 求助:用c语言编程 统计输入的一个字符串中各字母出现的次数 -
泣衫复方: 我写的:避免双重循环: #include "stdio.h" #define N 100 int main() {char s[N];printf("Input a string:\n");scanf("%s",s);int i,up[26]={0},down[26]={0};for(i=0;i<N && s[i]!=0;i++) {if(s[i]>='A' && s[i]<='Z') // 大写字母up[ s[i]-'A' ]++;else if(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网