C 语言查找字符串中每个字符的频率程序

编写一个 C 语言程序,找出字符串中每个字符的频率,并附带示例。

C 语言查找字符串中每个字符的频率程序 示例 1

此程序允许用户输入一个字符串(或字符数组)。接下来,它将找出此字符串中存在的每个字符的频率。

#include <stdio.h>
#include <string.h>
 
int main()
{
  	char str[100];
  	int i;
  	
  	int freq[256] = {0}; 
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	
  	
  	for(i = 0; str[i] != '\0'; i++)
  	{
  		freq[str[i]]++;
	}
  		
  	for(i = 0; i < 256; i++)
  	{
		if(freq[i] != 0)
		{
			printf("Character '%c' Occurs %d Times \n", i, freq[i]);
		}
	}
	
  	return 0;
}
C Program to Find Frequency of each Character in a String 1

查找字符串中每个字符的频率程序 示例 2

此字符频率程序与上述程序相同,但我们对 C 编程逻辑进行了一些小的更改。

/* C Program to Find Frequency of each Character in a String */
 
#include <stdio.h>
#include <string.h>
 
int main()
{
  	char str[100];
  	int i;
  	
  	int freq[26] = {0}; 
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	
  	
  	for(i = 0; str[i] != '\0'; i++)
  	{
  		if(str[i] >= 'a' && str[i] <= 'z')
  		{
  			freq[str[i] - 'a']++;
		}
  		else if(str[i] >= 'A' && str[i] <= 'Z')
  		{
  			freq[str[i] - 'A']++;
		}
	}
  		
  	for(i = 0; i < 26; i++)
  	{
		if(freq[i] != 0)
		{
			printf("Character '%c' Occurs %d Times \n", i+'a', freq[i]);
		}
	}
	
  	return 0;
}
 Please Enter any String :  Tutorial Gateway
Character 'a' Occurs 3 Times 
Character 'e' Occurs 1 Times 
Character 'g' Occurs 1 Times 
Character 'i' Occurs 1 Times 
Character 'l' Occurs 1 Times 
Character 'o' Occurs 1 Times 
Character 'r' Occurs 1 Times 
Character 't' Occurs 3 Times 
Character 'u' Occurs 1 Times 
Character 'w' Occurs 1 Times 
Character 'y' Occurs 1 Times 

示例 3

此字符频率 程序 与第二个示例相同,但这次我们使用了 函数 概念来分离逻辑。

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

void Freq_eachCharacter(char *str);
 
int main()
{
  	char str[100];
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	
  	Freq_eachCharacter(str);
	
  	return 0;
}

void Freq_eachCharacter(char *str)
{
	int i;
	int freq[26] = {0}; 
	  	
	for(i = 0; str[i] != '\0'; i++)
  	{
  		if(str[i] >= 'a' && str[i] <= 'z')
  		{
  			freq[str[i] - 'a']++;
		}
  		else if(str[i] >= 'A' && str[i] <= 'Z')
  		{
  			freq[str[i] - 'A']++;
		}
	}
  		
  	for(i = 0; i < 26; i++)
  	{
		if(freq[i] != 0)
		{
			printf("Character '%c' Occurs %d Times \n", i+'a', freq[i]);
		}
	}
}
 Please Enter any String :  C Programming
Character 'a' Occurs 1 Times 
Character 'c' Occurs 1 Times 
Character 'g' Occurs 2 Times 
Character 'i' Occurs 1 Times 
Character 'm' Occurs 2 Times 
Character 'n' Occurs 1 Times 
Character 'o' Occurs 1 Times 
Character 'p' Occurs 1 Times 
Character 'r' Occurs 2 Times