有一个大小为8个字符的接收缓冲区.定义的是,接收的字符是字符串.没有定义(没有保证)字符串以零字符终止.
简单的例子:
char cBuffer[ 8 ]{ 0 };
ReceiveIncommingMessage( cBuffer );
std::string sStringForFurtherComparison( cBuffer, strlen( cBuffer) );
Run Code Online (Sandbox Code Playgroud)
当接收到的字符串小于8字节时,此示例适用于所有情况.我想要捕获这样的情况,其中接收的字符串不是由零字符终止或者正好是8字节长.
strlen_s( buffer, max_length )
具有最大长度的A 可以解决这个问题,所以我可以做这样的事情:
std::string sStringForFurtherComparison( cBuffer, strlen_s( cBuffer, sizeof( cBuffer ) );
Run Code Online (Sandbox Code Playgroud)
我没有在标准中找到这样的功能.使用标准工具有没有优雅的解决方案?也许就行了?