无符号字符位访问,以确定char是否由1和0组成

时间:2012-02-07 04:19:00

标签: c char unsigned

嘿,我需要一些无符号char位访问的帮助。我需要测试以确保作为无符号字符(UCHAR)的“通道”长度为6位(我有)并且输入的数字实际上是二进制数(也就是1或0)。我不知道如何访问它。任何帮助都会很棒!

void binEnter(void *channel){
int i;
for (i=0; i<6; i++) {
redo:
    printf("Enter binary value for Channel %d: ",i);
    scanf("%s",(UCHAR *)channel);
    if (strlen(channel)!=6) {
        printf("Error entry must be six digits!\n");
        goto redo;
    }
}
}

1 个答案:

答案 0 :(得分:0)

制作循环以检查每个数字。

char *string = channel;
for (j = 0; j < 6; j++)
{
  if ((string[j] != '0') && (string[j] != '1'))
  {
    // error
  }
}

您也可以使用strtol(3)并检查endptr中的结果,看看您是否有一个6位数字。