Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

C โปรแกรมหาจำนวนอักขระสูงสุดที่เกิดขึ้นในสตริง


อาร์เรย์ของอักขระเรียกว่าสตริง

ประกาศ

ต่อไปนี้เป็นการประกาศประกาศอาร์เรย์ดังต่อไปนี้ -

char stringname [size];

ตัวอย่างเช่น:สตริงอักขระ[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:\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;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

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