从排序的char数组中删除重复项

时间:2013-10-26 18:28:42

标签: c arrays sorting duplicates

我将从用户那里获得输入并删除除大写字母之外的所有内容。但是我不想要重复的大写字母。到目前为止,我唯一的问题是删除重复项。

以下是对字母进行排序并仅将我想要的字母放入新数组的代码。

        placer=0;
  for (a = 0 ; a < ( strlen(regular) - 1 ); a++)
  {
    for (placer = 0 ; placer < strlen(regular) - a - 1; placer++)
    {
      if (regular[placer] > regular[placer+1]) 
      {
        swap              = regular[placer];
        regular[placer]   = regular[placer+1];
        regular[placer+1] = swap;
      }
    }
  }
printf("regular: %s\n", regular);     // this prints exactly as it is supposed to
    placer=0;
    for (a=0; a<strlen(regular); a++){
       if (regular[a] != regular[a+1]){
        alpha[placer] == regular[a];
        placer++;
       }
    }
printf("alpha: %s\n", alpha);        // this does not

因为它存在阵列alpha将由于未知的原因不采取任何字符。每当我尝试打印它时,它只是打印垃圾。

只是为了澄清:

char regular[81+1]="\0", alpha[26];

这是2个阵列的声明。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

你错误地将“==”误认为是行中的“=”[placer] = regular [a] ;.

所以这应该是

alpha[placer] = regular[a];