สตริงคืออาร์เรย์อักขระหนึ่งมิติที่สิ้นสุดโดยอักขระ null ความถี่ของอักขระในสตริงคือจำนวนครั้งที่เกิดขึ้นในสตริง ตัวอย่างเช่น −
String: Football is a sport The frequency of alphabet o in the above string is 3
โปรแกรมหาความถี่ของตัวอักษรแต่ละตัวมีดังต่อไปนี้
ตัวอย่าง
#include <iostream> using namespace std; int main() { char str[100] = "this string contains many alphabets"; char c = 'a'; int count = 0; for(int i = 0; str[i] != '\0'; i++) { if(str[i] == c) count++; } cout<<"Frequency of alphabet "<<c<<" in the string is "<<count; return 0; }
ผลลัพธ์
Frequency of alphabet a in the string is 4
ในโปรแกรมข้างต้น for loop จะใช้เพื่อค้นหาความถี่ของตัวอักษร a สำหรับสตริงที่กำหนด ในลูป for ถ้า str[i] เท่ากับตัวอักษร การนับจะเพิ่มขึ้น 1 ค่าของการนับนี้จะแสดงเป็นความถี่ของตัวอักษร ข้อมูลโค้ดสำหรับสิ่งนี้มีดังต่อไปนี้
for(int i = 0; str[i] != '\0'; i++) { if(str[i] == c) count++; } cout<<"Frequency of alphabet "<<c<<" in the string is "<<count;
โปรแกรมหาความถี่ของตัวอักษรทั้งหมดในสตริงมีดังนี้
ตัวอย่าง
#include <iostream> using namespace std; int main() { char str[100] = "this string contains many alphabets"; int i = 0, alphabet[26] = {0}, j; while (str[i] != '\0') { if (str[i] >= 'a' && str[i] <= 'z') { j = str[i] - 'a'; ++alphabet[j]; } ++i; } cout<<"Frequency of all alphabets in the string is:"<<endl; for (i = 0; i < 26; i++) cout<< char(i + 'a')<<" : "<< alphabet[i]<< endl; return 0; }
ผลลัพธ์
Frequency of all alphabets in the string is: a : 4 b : 1 c : 1 d : 0 e : 1 f : 0 g : 1 h : 2 i : 3 j : 0 k : 0 l : 1 m : 1 n : 4 o : 1 p : 1 q : 0 r : 1 s : 4 t : 4 u : 0 v : 0 w : 0 x : 0 y : 1 z : 0
ในโปรแกรมด้านบน ใช้ while loop เพื่อค้นหาความถี่ของตัวอักษรทั้งหมดในสตริง ตัวอักษรอาร์เรย์[] เก็บความถี่ของตัวอักษรทั้งหมด ตัวแปร j เก็บค่าตัวเลขของตัวอักษร เช่น a คือ 0, b คือ 1 เป็นต้น จากนั้นดัชนี jth ของตัวอักษรอาร์เรย์จะเพิ่มขึ้น 1 ซึ่งแสดงให้เห็นโดยข้อมูลโค้ดต่อไปนี้ -
while (str[i] != '\0') { if (str[i] >= 'a' && str[i] <= 'z') { j = str[i] - 'a'; ++alphabet[j]; } ++i; }
หลังจากประเมินทั้งสตริงแล้ว ความถี่ของตัวอักษรจะถูกพิมพ์ ดังแสดงไว้ดังนี้
cout<<"Frequency of all alphabets in the string is:"<<endl; for (i = 0; i < 26; i++) cout<< char(i + 'a')<<" : "<< alphabet[i]<< endl;