Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何查找和打印字符串上的重复字符?_C_String - Fatal编程技术网

C 如何查找和打印字符串上的重复字符?

C 如何查找和打印字符串上的重复字符?,c,string,C,String,我想知道如何在字符串上打印重复字符? 此外,打印副本不应单独打印每个字母,而应仅打印一系列字母。最常遇到的字母应该放在序列的前面。 我已经给了绳子。我得到的输出是相同的字符串 提前感谢使用计数排序。请参阅 要根据频率排列字符,只需使用2d数组[255][2] 根据您拥有的字符范围设置大小的数组。例如,如果你有所有的字符范围,就有一个数组[255],并且每次读取一个值时就不断递增。如果你只有字母表,就有数组[26] 然后根据第一个索引使用 #包括 #包括 int intcmp(常数无效*a,常数无

我想知道如何在字符串上打印重复字符? 此外,打印副本不应单独打印每个字母,而应仅打印一系列字母。最常遇到的字母应该放在序列的前面。 我已经给了绳子。我得到的输出是相同的字符串

提前感谢

使用计数排序。请参阅 要根据频率排列字符,只需使用2d数组[255][2]

根据您拥有的字符范围设置大小的数组。例如,如果你有所有的字符范围,就有一个
数组[255]
,并且每次读取一个值时就不断递增。如果你只有字母表,就有
数组[26]

然后根据第一个索引使用

#包括
#包括
int intcmp(常数无效*a,常数无效*b){
int*A=(int*)A;
int*B=(int*)B;
如果(A[0]>B[0])
返回-1;

如果(A[0],请编辑您的问题,使其有意义且可读。这些句子没有任何意义:“此外,打印副本不应单独打印每个字母,而应仅打印一系列字母。最常见的字母应放在序列的前面。”您问什么?例如单词“梭鱼”->“aaarrbcud”@Pavel您打印的图案是什么?既不是排序的,也不是原始顺序?首先,最常出现的字母,然后是字母,它是rarrarraaadbc-->它必须是aaarrbcud
 #include<stdio.h>
 #include<stdlib.h>

 int intcmp(const void *a,const void *b ){
 int *A = (int*)a;
 int *B = (int*)b;
 if( A[0]>B[0])
    return -1;
 if( A[0]<B[0])
    return 1;
 if( A[0]==B[0])
   return 0;
}
int main()
{
    char st[100];
    int ar[26][2]={0},size=0,i;
    scanf("%s",&st);

    for(i=0;st[i]!='\0';i++)
    {
       ar[st[i]-97][1]=st[i];
       ar[st[i]-97][0]++;
    }
    qsort(ar,26,sizeof(int)*2,intcmp);
    for(i=0;i<26;i++)
    {
       while(ar[i][0]--)
       printf("%c",ar[i][1]);
    }
 return 0;
 }