Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พิมพ์ตัวอักษรซ้ำทั้งหมดใน Input String ใน C++

ในปัญหานี้ เราจะได้รับสตริง และต้องหาตัวอักษรที่ซ้ำทั้งหมดพร้อมกับจำนวนครั้งที่เกิดขึ้นในสตริง

ตัวอย่างเพื่อความเข้าใจ

Input: TutorialsPoint
Output: t (3) o (2) i (2)

คำอธิบาย - ความถี่ของแต่ละตัวอักษรคือ t → 3; u → 1; o → 2; r → 1; i → 2; a → 1; s → 1; n → 1

ตอนนี้เพื่อแก้ปัญหานี้ เราจะหาจำนวนตัวอักษรและเก็บใน array จากสตริง แล้วพิมพ์ตัวอักษรและจำนวนครั้งที่เกิดขึ้นที่ freq มากกว่า 1

โปรแกรมตัวอย่าง

#include <iostream>
using namespace std;

#define NO_OF_CHARS 256

class duplicate_char {
public:
    void charCounter(char *str, int *count) {
        int i;
        for (i = 0; *(str + i); i++)
            count[*(str + i)]++;
    }
    void printDuplicateCharacters(char *str) {
        int *count = (int *)calloc(NO_OF_CHARS, sizeof(int));
        charCounter(str, count);
        int i;
        for (i = 0; i < NO_OF_CHARS; i++)
            if (count[i] > 1)
                printf("%c\t\t %d \n", i, count[i]);
        free(count);
    }
};

int main() {
    duplicate_char dupchar;
    char str[] = "tutorialspoint";
    cout << "The duplicate characters in the string\n";
    cout << "character\tcount\n";
    dupchar.printDuplicateCharacters(str);
    return 0;
}

ผลลัพธ์

The duplicate characters in the string character count

i 2
o 2
t 3