统计字母个数(C语言)

Posted 劳埃德·福杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计字母个数(C语言)相关的知识,希望对你有一定的参考价值。

题目:读取文件中的字符串,统计从“a”到“z”26个字母各自出现的次数,并将结果放入数组中。如文件中有字符串abcdefgabcdeabc,输出33322110000000000000000000。
思路:这里我用letter[0] - letter[25]分别存储a-z出现的次数。letter[0]=letter[‘a’-‘a’],letter[0]存储a出现的次数;letter[1]=letter[‘b’-‘a’],letter[1]存储b出现的次数;以此类推…

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

int main(void)

	char string[200];							/*string数组存放字符串*/
	int letter[26] =  0 ;						/*letter数组记录字母出现的次数*/
	unsigned int i;							
	FILE *fp;
	errno_t err;
	if ((err = fopen_s(&fp, "data.txt", "r")) != 0)/*打开文件,并判断*/
	
		printf("\\ncan not open the file!\\n");	 /*若打不开,提示*/
		exit(1);								 /*退出程序*/
	
	while (!feof(fp))							 /*从头到尾读文件*/
	
		fscanf_s(fp, "%s", string, 200 * sizeof(char));	/*把文件中字符串放到数组里*/
		for (i = 0; i < strlen(string); i++)	 /*遍历字符串*/
		
			if (string[i]<'a' || string[i]>'z')	 /*若非a~z*/
			
				continue;					     /*不记录*/
			
			letter[string[i] - 'a']++;		     /*记录a~z出现的次数*/
		
			
	fclose(fp);								     /*关闭文件*/
	for (i = 0; i < 26; i++)				     /*输出记录*/
	
		printf("%d ", letter[i]);
	
	printf("\\n");

	return 0;

文件data.txt内容:

如果你用的是dev c++,按下面这样写

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

int main(void)

	char string[200];							/*string数组存放字符串*/
	int letter[26] =  0 ;						/*letter数组记录字母出现的次数*/
	unsigned int i;							
	FILE *fp;
	fp = fopen("data.txt", "r");
	/*打开文件,并判断*/
	if (fp == NULL) 
		printf("\\ncan not open the file!\\n");	 /*若打不开,提示*/
		exit(1);								 /*退出程序*/
	
	while (!feof(fp))							 /*从头到尾读文件*/
	
		fscanf(fp, "%s", string, 200 * sizeof(char));	/*把文件中字符串放到数组里*/
		for (i = 0; i < strlen(string); i++)	 /*遍历字符串*/
		
			if (string[i]<'a' || string[i]>'z')	 /*若非a~z*/
			
				continue;					     /*不记录*/
			
			letter[string[i] - 'a']++;		     /*记录a~z出现的次数*/
		
			
	fclose(fp);								     /*关闭文件*/
	for (i = 0; i < 26; i++)				     /*输出记录*/
	
		printf("%d ", letter[i]);
	
	printf("\\n");

	return 0;

以上是关于统计字母个数(C语言)的主要内容,如果未能解决你的问题,请参考以下文章

C语言程序:编写程序,统计特定字母的个数。要求用指针编写。谢谢!!!

c语言中怎样统计字符串中包含英文字母的个数?

c语言 对任意输入的字符串,统计其中的大写字母和小写字母的个数

C语言,输入一行英文字母,统计其中有多少个单词,单词之间用空格分隔.

编写函数,统计一个字符串中大写字母的数目 用c语言

c语言中怎样统计字符串中包含英文字母的个数?