एल्गोरिदम
- स्ट्रिंग इनपुट लें।
- फ्रीक्वेंसी ऐरे को 0 से इनिशियलाइज़ करें।
- प्रत्येक कैरेक्टर के लिए:
- यदि लोअरकेस (a-z): freq[ch - 'a']++
- यदि अपरकेस (A-Z): freq[ch - 'A']++
- नॉन-जीरो फ्रीक्वेंसी वाले कैरेक्टर्स प्रिंट करें।
C प्रोग्राम
#include <stdio.h>
#include <string.h>
#define MAX 100
int main() {
char string[MAX];
int freq[26] = {0}; // केवल अल्फाबेट्स के लिए
int i, len;
printf("Enter string: ");
gets(string);
len = strlen(string);
for(i = 0; i < len; i++) {
if(string[i] >= 'a' && string[i] <= 'z')
freq[string[i] - 'a']++;
else if(string[i] >= 'A' && string[i] <= 'Z')
freq[string[i] - 'A']++;
}
printf("Character frequencies:\n");
for(i = 0; i < 26; i++) {
if(freq[i] != 0)
printf("'%c' = %d\n", 'a' + i, freq[i]);
}
return 0;
}
आउटपुट
Enter string: Tutorials Point
Character frequencies:
'a' = 1
'i' = 2
'l' = 1
'n' = 1
'o' = 2
'p' = 1
'r' = 1
's' = 1
't' = 3
संपूर्ण ASCII फ्रीक्वेंसी (सभी कैरेक्टर्स)
int freq[256] = {0};
for(i = 0; string[i]; i++)
freq[(unsigned char)string[i]]++;
for(i = 0; i < 256; i++)
if(freq[i] && isprint(i))
printf("'%c' (%d) = %d\n", i, i, freq[i]);
केस-इनसेंसिटिव बनाम केस-सेंसिटिव
| मोड | विवरण | ऐरे आकार |
| केस-सेंसिटिव | 'A' और 'a' अलग | 256 |
| केस-इनसेंसिटिव | 'A' और 'a' समान | 26 (केवल अक्षर) |
उपयोग केस
- टेक्स्ट एनालिसिस, क्रिप्टोग्राफी (फ्रीक्वेंसी एनालिसिस)
- डेटा कम्प्रेशन (हफमैन कोडिंग)
- पासवर्ड स्ट्रेंथ चेक
- भाषा पहचान