将 char[] 数组转换为 byte[] ,反之亦然?C++

2022-01-12 00:00:00 char c++

将字符数组转换为字节(反之亦然)的最佳方法是什么?

What is the best way to convert an array of chars to bytes and vice versa?

解决方案:

void CharToByte(char* chars, byte* bytes, unsigned int count){
    for(unsigned int i = 0; i < count; i++)
        bytes[i] = (byte)chars[i];
}

void ByteToChar(byte* bytes, char* chars, unsigned int count){
    for(unsigned int i = 0; i < count; i++)
         chars[i] = (char)bytes[i];
}

推荐答案

类型 char 是少数几个具有 ANSI 标准保证的大小且大小为 1 字节的类型之一.据我所知,C 并没有直接定义类型字节.然而,拥有一个名为 byte 的类型实际上并不是一个字节大小的类型,这简直是太疯狂了.因此,一个简单的演员表应该可以解决问题.

The type char is one of the few types that has a size guaranteed by the ANSI standard and that size is 1 byte. As far as I know C does not directly define the type byte. However it would be just short of insane to have a type named byte which is not in fact a byte in size. Therefore a simple cast should do the trick.

相关文章