我怎么能不使用整数写这个?

问题描述 投票:-3回答:1
#include <stdio.h>
#include <string.h>

int main(void)
{
  char alpha[26] = { '0' };
  char nl;

  while (alpha != '0'){
        scanf("%c", &alpha);
        scanf("%c", &nl);
        printf("the character is %c\n", alpha);
 }



int i, j, size;

  for (i=0;i<size;i++){
    for (j=i;j<size;j++){
      if (alpha[i]<alpha[j]){
        Swap(&alpha[i], &alpha[j]);
      }
    }
  }

  printf("%s", alpha);

  return 0;
}

我在while循环中收到错误“指针和整数之间的比较”。我想从文本文件中读取字母表中的每个字母,并在列表末尾达到“0”时停止。然后它将按字母顺序从z,y,x开始排序..等。我怎么写这个,所以它停在“0”而不使用整数?谢谢您的帮助

c arrays string while-loop
1个回答
0
投票

alpha [26]是一个包含26个字符的数组,你的while循环总是会覆盖数组的第一个元素(scanf("%c", &alpha);会在循环的每次迭代中覆盖alpha的第一个元素),整个代码将无效。要访问数组的元素,你可以使用指针或索引,索引更容易,尝试一个for循环

int i;

for (i = 0; i<26 ; i++)
   {
     if(alpha[i] != '0')
       {
        scanf("%c", &alpha[i]);
        printf("the character is %c\n", alpha[i]);
       }
   }

C: scanf to array

使用指针访问数组请参阅Can i use pointer in scanf to take input in an array?

© www.soinside.com 2019 - 2024. All rights reserved.