繁体   English   中英

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

[英]Can only add a certain amount of characters to string - C++

我正在用 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;

出于某种原因,此代码仅将char1char2char3char4str ,其余字符将被完全忽略。 为什么会这样,我能做些什么来解决它?

问题可能是char5中的0吗? C 字符串以空字符结尾,因此如果您的字符串被强制转换为 C 字符串,我认为它会在那时被截断。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM