কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রাম দিয়ে স্ট্রিংয়ের প্রতিটি ক্যারেক্টার ফ্রিকোয়েন্সি কাউন্ট করা

প্রতিটি ক্যারেক্টার ফ্রিকোয়েন্সি কাউন্ট

স্ট্রিংয়ের সব ক্যারেক্টার (A-Z, a-z) এর ফ্রিকোয়েন্সি আলাদা আলাদা কাউন্ট করে প্রিন্ট করা। কেস-ইনসেনসিটিভ (case-insensitive) কাউন্টিং করা হয়।

অ্যালগরিদম

  1. স্ট্রিং ইনপুট নিন।
  2. ফ্রিকোয়েন্সি অ্যারে freq[26] শূন্য দিয়ে ইনিশিয়ালাইজ করুন (শুধু অ্যালফাবেটের জন্য)।
  3. প্রতিটি ক্যারেক্টার চেক করুন:
    • যদি 'a'-'z' → freq[ch - 'a']++
    • যদি 'A'-'Z' → freq[ch - 'A']++
  4. নন-জিরো ফ্রিকোয়েন্সিostics वाले ক্যারেক্টারগুলো প্রিন্ট করুন।

সি প্রোগ্রাম

#include <stdio.h>
#include <string.h>

#define MAX_STR 100

int main() {
    char str[MAX_STR];
    int freq[26] = {0};
    int i, len;

    printf("Enter a string: ");
    fgets(str, sizeof(str), stdin);
    str[strcspn(str, "\n")] = '\0';

    len = strlen(str);

    for (i = 0; i < len; i++) {
        char ch = str[i];
        if (ch >= 'a' && ch <= 'z')
            freq[ch - 'a']++;
        else if (ch >= 'A' && ch <= 'Z')
            freq[ch - 'A']++;
    }

    printf("\nCharacter Frequencies:\n");
    for (i = 0; i < 26; i++) {
        if (freq[i] != 0)
            printf("'%c' = %d\n", 'a' + i, freq[i]);
    }

    return 0;
}

আউটপুট

Enter a string: Tutorials Point

Character Frequencies:
'a' = 1
'i' = 2
'l' = 1
'n' = 1
'o' = 2
'p' = 1
'r' = 1
's' = 1
't' = 3

উন্নত সংস্করণ: সব ক্যারেক্টার (ASCII 256) কভার

#include <stdio.h>
#include <string.h>

#define MAX_STR 100
#define MAX_CHARS 256

int main() {
    char str[MAX_STR];
    int freq[MAX_CHARS] = {0};
    int i;

    printf("Enter a string: ");
    fgets(str, sizeof(str), stdin);
    str[strcspn(str, "\n")] = '\0';

    for (i = 0; str[i]; i++)
        freq[(unsigned char)str[i]]++;

    printf("\nAll character frequencies:\n");
    for (i = 0; i < MAX_CHARS; i++) {
        if (freq[i] > 0) {
            if (i >= 32 && i <= 126)
                printf("'%c' = %d\n", i, freq[i]);
            else
                printf("ASCII %d = %d\n", i, freq[i]);
        }
    }
    return 0;
}

সarসংক্ষেপ

  • অ্যালফাবেট-অনלי কাউন্টের জন্য freq[26] পর্যাপ্ত।
  • সব ASCII ক্যারেক্টার কাউন্ট করতে freq[256] ব্যবহার করুন।
  • unsigned char কাস্ট ব্যবহার করুন নেগেটিভ ইনডেক্স এড়াতে।
  • কেস-সেনসিটিভ চাইলে 'a'-'z' এবং 'A'-'Z' আলাদা হ্যান্ডল করুন।
  1. অ্যান্ড্রয়েডে স্ট্রিং-এ প্রতিটি ক্যারেক্টারের বhaviour গণনার পদ্ধতি

  2. স্ট্রিং-এ প্রতিটি ডিজিটের ফ্রিকোয়েন্সি গণনার C প্রোগ্রাম

  3. ক্যারেক্টার, স্ট্রিং ও বাক্য ইনপুট/আউটপুট করার C প্রোগ্রাম

  4. goto স্টেটমেন্ট ব্যাখ্যা করার সি প্রোগ্রাম