微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

字符比较和处理变量

如何解决字符比较和处理变量

所以我对一般的编程很陌生,对基于 C 和 UNIX 的操作系统更是如此。

我正在尝试学习如何用 C 编写代码,我正在 ubuntu 操作系统上工作。我在网上找到了一些初学者级别的任务来开始。所以现在我正在努力完成这个任务:

完成函数code2abc的实现,使其返回 对应于类型参数代码中指定的 2 位代码的字符 字符。函数返回的字符应根据 代码的以下位内容

代码/返回值:00000001/'A' --- 00000010/'B' --- 00000011/'C'

预期输出

  1. code2abc(1) = 'A'
  2. code2abc(2) = 'B'
  3. code2abc(3) = 'C'
  4. code2abc(0) = ' '
  5. cod2abc(任何其他) = ' '

首先,我不太明白 2 位代码的含义以及如何使用它。我在网上查过,但没有找到任何帮助。其次,据我所知,指令暗示函数的输入是一个字符值,这如何响应那里提到的二进制代码?到目前为止,我已经尝试过:

char code2abc(char code) {
    if ((code <'1' != 0) || (code >'3' != 0)) { // referring to ASCII values of the chars
        return ' ';
}
    return (code + 52); // 52 is the difference of ASCII values between A,B,C and 1,2,3  
}

我习惯于使用 Java,所以我尝试使用我所知道的,但我觉得我已经离题了。当我编译文件时,系统提醒我变量“代码”未被使用,当我运行它时它返回“”(空格)。我正在使用 VIM 编辑器,是否存在语法错误导致编译器无法识别该变量?

真的很感激任何想法或提示

解决方法

您可以使用简单的 switch 语句轻松完成此操作,例如:

char code2abc(const int code){
    switch(code){
        case 0b01: return 'A';
        case 0b10: return 'B';
        case 0b11: return 'C';
        default: return '';
    }
}

这里没有发生真正的转换,只是一个简单的 if-else 关系。我认为他们希望你做的是查看二进制并将其转换为十进制?如果是这样,上面的代码将等价于:

char code2abc(const int code){
    switch(code){
        case 1: return 'A';
        case 2: return 'B';
        case 3: return 'C';
        default: return '';
    }
}

至于两位代码的“含义”,没有。它只是分配给字母“A”、“B”和“C”的任意映射。你不会在任何惯例中找到它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。