编写一个C语言程序:从键盘读入一行文本,统计每个英文字母出现的次数

来自:    更新日期:早些时候
C语言题目,从键盘输入一行文本,统计其中每个英文字母出现的频率~

1、新建一个工程和.c文件 ,输入头文件和主函数。

2、定义 变量类型,输入数字。

3、用while语句判断数字是否在1到4范围内。

4、调用函数。

5、用一个for语句输出。

6、编译、运行 ,得到最后的结果。

给你说一个大概思路
把读出来的字符串逐个字母进行判断,记录当前判断字母为ch
i = 把字符转化为整型数(对应的ASCII:0—48,a—97,A—65)具体算法自己想想
然后letter[i]++
最后输出就行了

对于每个英文字母分别判断个数,并累计,最终输出即可。

一、算法:

1、循环读取字符,直到换行为止。对于每个字符,执行以下流程。

2、判断是否为英文字母,即小写和大写两种。

3、如果是英文字母,则统计个数。

输入部分,可以存为数组,也可以每输入一个字符计算一次。

二、参考代码:

#include <stdio.h>
int main()
{
    int c;
    int cnt[52]={0};
    while((c=getchar())!='
')//读取每个字符,直到遇到换行为止。
    {
        if(c>='A'&&c<='Z')//大写
            cnt[c-'A'] ++;//统计。
        else if(c>='a'&&c<='z')//小写
            cnt[c-'a'+26] ++;//统计。
    }
    for(c=0;c<26;c++)//输出大写字母统计结果。
        if(cnt[c]!=0) printf("%c:%d
", c+'A', cnt[c]);
    for(c=26;c<52;c++)//输出大写字母统计结果。
        if(cnt[c]!=0) printf("%c:%d
", c-26+'a', cnt[c]);
    return 0;
}


#include <stdio.h>
int main(void)
{int i;
char j;
char a;
int b[26]={0};
while ((a = getchar()) != '\n')
{
for (j='A';j<='Z';++j)
{
if (a == j || a == j+('a'-'A'))
{
b[j-'A']++;
}
}
}
for (i=0;i<26;++i)
{
if (b[i] == 0)
{
continue;
}
else
{
printf("'%c':%d\n",i+'A',b[i]);
}
}
printf("\n");
}

#include <stdio.h>
#include <stdlib.h>

#define MAX 100

int main()
{
char str[MAX]; // 输入的字符串,最大长度是MAX-1,因为有一个字符串结束符
int i = 0, count[52] = { 0 }; // count 数组用来存储各个字母出现的次数
scanf("%s", str);
while(str[i] != '\0') {
if (str[i] >= 'a' && str[i] <= 'z') { // 统计小写字母
count[str[i] - 97 + 26]++;
}
if (str[i] >= 'A' && str[i] <= 'Z') { // 统计大写字母
count[str[i] - 65]++;
}
i++;
}
for (i = 0; i < 26; i++) { // 输出大写字母信息
if (count[i] != 0)
printf("%c\t%d\n", i + 65, count[i]); // 只输出不为零的数据
}
for (i = 26; i < 52; i++) { // 输出小写字母信息
if (count[i] != 0)
printf("%c\t%d\n", i + 97 - 26, count[i]);
}
return 0;
}


编写一个C语言程序:从键盘读入一行文本,统计每个英文字母出现的次数视频

相关评论:
  • 13350644555编写一个C语言程序:从键盘读入一行文本,统计每个英文字母出现的次数...
    戈耿容=0)printf("%c\\t%d\\n",i+65,count[i]

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

  • 13350644555用C语言编写一个完整的程序,通过键盘输入一个年号,判断是否为闰年_百 ...
    戈耿容1. 编写C语言程序需要包含头文件`stdio.h`,这是标准输入输出库的头文件。2. 在`main`函数中,使用`scanf`函数从键盘接收一个整数,该整数代表年号。3. 通过`if`语句判断年号是否为闰年。一个年份是闰年的条件是:能被4整除但不能被100整除,或者能被400整除。4. 根据判断结果,使用`printf`函数...

  • 13350644555编写一个c语言程序,从键盘中读入一串字符,用函数完成:将其中的小写字母...
    戈耿容int length=strlen(pString);int i=0;for(;i<length;++i)if(i[pString]>='a'&&i[pString]<='z')i[pString]-=32;return pString;}

  • 13350644555C语言从键盘出入两个整数,求其和是什么意思?
    戈耿容C语言从键盘出入两个整数,求其和,可以参考下面的代码:include<stdio.h> int main(){ int a1, a2;printf("请输入两个整数:");\/\/输入以空格间隔 回车结束 scanf_s("%d %d", &a1, &a2);printf("%d+%d=%d\\n", a1, a2, a1 + a2);return 0;} ...

  • 13350644555C语言:请编写一个程序,从键盘读入两个整数a和n,计算并输出a+aa+aaa+...
    戈耿容{int i,j,a,n,k=0,out=0;printf("请输入a与n:");scanf("%d %d",&a,&n);for(i=0;i<n;i++){ for(j=0;j<=i;j++){ k=k*10+a;} out+=k;k=0;} printf("the result is:%d\\n",out);} 或者用楼上的公式 include <stdio.h> void main(){int i,a,n,k=1,out;...

  • 13350644555用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字...
    戈耿容程序如下:include <stdio.h> int main(){ char ch;scanf("%c",&ch);printf("%c",ch-'a'+'A');return(0);} 示例一:include<stdio.h> int main(){ char ch;scanf("%c",&ch);printf("Letter %c converted into a letter %c!",ch,ch-32);\/\/大写字母ASCII码比小写字母小32 ...

  • 13350644555编写一个程序从键盘输入1到7数字中的一个,对应打印星期几,例如从键盘...
    戈耿容1、首先打开VS2017软件,选择新建下面的项目,如下图所示 2、C语言程序目录建成以后,右键单击源文件,选择添加新建项 3、接着选择C++文件,给文件起一个名字,如下图所示 4、然后在C语言文件中编写如下的C语言程序 5、运行结果如下:

  • 13350644555用c语言编写一个程序,从键盘上输入两个字符给字符变量a,b,并输出变...
    戈耿容程序代码如下:include <stdio.h> \/\/编译预处理命令 int main(int argc, char *argv[]) \/\/主函数,字符的声明 { char a,b; \/\/定义字符a,b scanf("%c %c",&a,&b); \/\/输入字符a,b printf("%c %c\\n",a,b);\/\/打印字符a,b return 0; \/\/返回并且输出a,b } 扩展...

  • 13350644555如何用c语言编写一个能够正确运行的程序?
    戈耿容scanf("%s", name);两者都可以编译通过,因为 scanf 的第二个参数只要是指针就可以,但是,敲黑板!千万不要使用 scanf("%s", &name) 这种方式,除!非!你!知! 道!你!在!干!什!么!,因为这会造成 C语言上经常会发生的指针越位问题。--- 最后,对于C语言指针这个对初学者很难懂的内容...

  • 相关主题精彩

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

    Copyright © 喜物网