在这个问题中,我们给了一个字符串,我们必须找到所有重复的字符以及它们在字符串中出现的次数。
让我们以一个例子来了解问题-
Input: nhooo Output: t (3) o (2) i (2)
说明-每个字符的出现频率为t→3;u→1; o→2;r→1;我→2; →1; s→1; n→1。
现在,要解决此问题,我们将找到字符计数并将其存储在字符串中的数组中。然后在频率处打印字符和出现的地方。大于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[] = "nhooo"; cout<<"The duplicate characters in the string\n"; cout<<"character\tcount\n"; dupchar.printDuplicateCharacters(str); return 0; }
输出结果
字符串字符计数中的重复字符
i 2 o 2 t 3