Computer >> Máy Tính >  >> Lập trình >> C ++

In tất cả các bản sao trong chuỗi đầu vào bằng C ++


Trong bài toán này, chúng ta được cung cấp một chuỗi và chúng ta phải tìm tất cả các ký tự được trùng lặp cùng với số lần xuất hiện của chúng trong chuỗi.

Hãy lấy một ví dụ để hiểu vấn đề -

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

Giải thích - Tần số xuất hiện của mỗi ký tự là t → 3; u → 1; o → 2; r → 1; i → 2; a → 1; s → 1; n → 1.

Bây giờ, để giải quyết vấn đề này, chúng ta sẽ tìm số ký tự và lưu trữ nó trong một mảng từ chuỗi. Và sau đó in các ký tự và số lần xuất hiện ở nơi freq. Nó nhiều hơn 1.

Ví dụ

# 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;
}

Đầu ra

Các ký tự trùng lặp trong đếm ký tự chuỗi

i 2
o 2
t 3