Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình tìm số lần xuất hiện tối đa của ký tự trong một chuỗi

Một mảng các ký tự được gọi là một chuỗi.

Tuyên bố

Sau đây là phần khai báo khai báo một mảng như sau -

char stringname [size];

Ví dụ:char string [50]; chuỗi dài 50 ký tự

Khởi tạo

  • Sử dụng hằng số ký tự -
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • Sử dụng hằng số chuỗi -
char string[10] = "Hello":;

Truy cập - Có một chuỗi điều khiển "% s" được sử dụng để truy cập vào chuỗi cho đến khi nó gặp ‘\ 0’.

Tìm lần xuất hiện tối đa

Logic để tìm ký tự xuất hiện tối đa là -

  • Trước tiên, hãy tìm tần số của các ký tự bằng cách sử dụng chương trình sau.
while(string[i] != '\0'){
   value = (int)string[i];
   frequency[value] += 1;
   i++;
}
  • Dựa trên điều này, chúng tôi đang tìm ký tự xuất hiện tối đa.
maximum = 0;
for(i=0; i<CHARS; i++){
   if(frequency[i] > frequency[maximum])
      maximum = i;
}

Ví dụ

Dưới đây là chương trình C để tìm ký tự xuất hiện tối đa trong một chuỗi -

#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:\n ");
   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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter the string:
tutorials point
Maximum occurrence character is 't' = 3 times.