#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”而不使用整数?谢谢您的帮助
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]);
}
}
使用指针访问数组请参阅Can i use pointer in scanf to take input in an array?