C語言程式:查詢字串中出現次數最多的字元
字元陣列稱為字串。
宣告
以下是宣告陣列的方法:
char stringname [size];
例如:char string[50]; 長度為50個字元的字串
初始化
- 使用單字元常量:
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
- 使用字串常量:
char string[10] = "Hello":;
訪問:使用控制字串“%s”訪問字串,直到遇到 ‘\0’。
查找出現次數最多
查詢字元出現次數最多的邏輯:
- 首先,使用以下程式查詢字元的頻率。
while(string[i] != '\0'){ value = (int)string[i]; frequency[value] += 1; i++; }
- 基於此,我們查找出現次數最多的字元。
maximum = 0; for(i=0; i<CHARS; i++){ if(frequency[i] > frequency[maximum]) maximum = i; }
示例
以下是查詢字串中出現次數最多的字元的C語言程式:
#include <stdio.h> #define SIZE 100 // Maximum string size #define CHARS 255 // Maximum characters allowed int main(){ char string[SIZE]; int frequency[CHARS]; int i = 0, maximum; int value; printf("Enter the string:
"); gets(string); for(i=0; i<CHARS; i++){ frequency[i] = 0; // initialize freq of all characters to zero } /* Finds frequency of each characters */ i=0; while(string[i] != '\0'){ value = (int)string[i]; frequency[value] += 1; i++; } /* Finds maximum frequency */ maximum = 0; for(i=0; i<CHARS; i++){ if(frequency[i] > frequency[maximum]) maximum = i; } printf("Maximum occurrence character is '%c' = %d times.", maximum, frequency[maximum]); return 0; }
輸出
執行上述程式後,將產生以下結果:
Enter the string: tutorials point Maximum occurrence character is 't' = 3 times.
廣告