编写一个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语言,输入一行,分别统计出其中的英文字母,数字和其他字符的个数,并...
include<stdio.h> define N 100 int main(){ char a[N];int i,m=0,n=0,b=0,c=0;printf("Input a string:");gets(a);for(i=0;a[i]!='\\0';i++){ if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')m++;else if(a[i]>='0'&&a[i]<='9')n++;else...
C语言:输入一行文字,找出其中大小写,数字 空格 其他字符,
include<stdio.h> void main(){int upper=0,lower=0,digit=0,space=0,other=0,i=0;char *p,s[20];printf("input the string:\\n");while((s[i]=getchar())!='\\n')i++;p=&s[0];while(*p!='\\n'){if(('A'<=*p)&&(*p<='Z'))++upper;else if(('a'<=*p)&&(*p<='...
scanf()如何读取一整行(转)
如果集合的第一个字符是"^", 这说明读取不在"^" 后面集合的字符,既遇到"^" 后面集合的字符便停止.注意此时读入的字符串是可以含有空格的。在这里主要是想说明一点:如果要循环的从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。否则的话,在下...
c语言:从文件f1.txt读入一行字符,将其中所有小写字母改写为大写字母,然 ...
程序如下:include <stdio.h> int main(){ FILE *fin, *fout;char s[1024]; \/\/假定一行不超过1024个字符 int i;if ( (fin = fopen("f1.txt","r"))==NULL){ printf("Can not open f1.txt\\n"); return 0;}; \/\/作为读,打开文件 fgets( s,1024,fin); \/\/读一行 fclos...
C语言:先输入一行字符,将其存放在字符数组中,再输入一个指定字符,在字...
ch = getchar(); \/\/ 读入一个字符 int i;for (i = 0; i < strlen(str); i++) { \/\/ 遍历字符数组 if (str[i] == ch) { \/\/ 如果找到了指定字符 printf("指定字符在字符数组中第一次出现的位置:%d\\n", i); \/\/ 输出下标 return 0; \/\/ 程序结束 } } \/\/ 如果没有找到...
C语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个...
include <stdio.h>void main(){ int letter, space, digit, other; char ch; letter = space = digit = other = 0; while ((ch = getchar ()) != '\\n') { if (ch>='a' && ch <= 'z' || ch>='A'&&ch<='Z') letter++; else if (ch>='0' && ch <='9')...
怎么用c语言输入一行字符并统计个数啊?
二、算法设计:1、读入字符,直到遇到换行结束。2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。3、对于每个字符判断后,对应类别计数器自加。4、最终输出结果。三、参考代码:include <stdio.h>int main(){ int a,b,c,d,ch; a=b=c=d=0;\/\/计数器初始化为0. whil...
输入一行字符,分别统计出其中英文字母(包括大小写)、空格、数字和其他字...
int letters=0,spaces=0,digits=0,others=0;printf("请输入一串任意的字符:\\n");while((c=getchar())!='\\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters++;else if(c>='0'&&c<='9')digits++;else if(c==' ')spaces++;else others++;} printf("字母有%d个...
C语言编程:从键盘中输入一个英文字符串
include<stdio.h> include<stdlib.h> int main(){ int strSize = 100;char *str = (char *)malloc(sizeof(char) * strSize);int charNum = 0;char input;\/\/逐个字符输入字符串,可以输入int可以表示的最大值个字符 printf("请输入任意个字符:\\n");while(true){ scanf("%c",&input);...
C语言:从键盘输入一篇英文文本,统计每个英文字母(分大小写)及空格、数...
source[i]=getchar())!=EOF; i++);source[i] = '\\0';}void output(int sign[], int n){int i;\/\/输出数字for(i='0'; i<'0'+10; i++){printf("%c : %d\\n", (char) i, sign[i]);}\/\/输出大写字母for(i='A'; i<'A'+26; i++){printf("%c : %d\\n", (char...