只能向C++添加一定数量的字符

Can only add a certain amount of characters to C++

本文关键字:字符 C++ 添加      更新时间:2023-10-16

我正在c++中创建一个套接字应用程序,其中我必须解码base64字符串。我在用RenéNyffenegger的(https://renenyffenegger.ch/notes/development/Base64/Encoding-and-decoding-base-64-with-cpp)执行此操作的代码。我发现base64_decode函数中的ret字符串总是只有4个字符长,经过一段时间的调试,我意识到这一切可以归结为:

unsigned char1 = 255;
unsigned char2 = 216;
unsigned char3 = 255;
unsigned char4 = 224;
unsigned char5 = 0;
unsigned char6 = 16;
unsigned char7 = 74;
unsigned char8 = 70;
unsigned char9 = 73;
string str;
str += char1;
str += char2;
str += char3;
str += char4;
str += char5;
str += char6;
str += char7;
str += char8;
str += char9;

由于某些原因,此代码仅将char1char2char3char4添加到str,其余字符将被完全忽略。为什么会出现这种情况?我该怎么办?

问题可能是char5中的0吗?C字符串是以null结尾的,所以如果您的字符串被强制转换为C字符串,我认为它会在这一点上被截断。

请再次注意,这是一个C问题,而不是C++问题,但在您的情况下,可能会发生这种转换。