在进行二进制到十六进制转换的过程中,我对C非常陌生。我真的不明白为什么while循环中的字符串比较不起作用。 (sect ==" 1001") 我知道它与我手动添加的NULL char有关。
#include <stdio.h>
/*
* .in file::
*
* 1001110000000001
*
*/
int main(void) {
char bin[100];
char sect[4];
int i = 0;
int j = 0;
while (scanf("%s", bin) != EOF) {
while(i < 16) {
while(j < 4) {
sect[j] = bin[i];
j++;
i++;
if (j == 4) {
sect[4] = '\0';
}
}
if( sect == "1001" ) {
printf("9");
}
j = 0;
}
}
}