参考:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740120(v=vs.85).aspx底部的c ++示例代码 我有一个char数组
char RecvBuf[1024];
在接收UDP消息时被填满。
如何将它存储在像string str;
这样的std :: string变量中,以便我可以从函数中返回一个字符串?
答案 0 :(得分:3)
使用std::string
的构造函数:
string ( const char * s, size_t n );
基本上,如果RecvBuf
是标准(文本)“字符串”,那么只需制作
std::string str( RecvBuf );
但这会复制所有char
,直到\0
被击中。
由于此缓冲区存储从套接字接收的原始字节,因此您应该期望\0
个字节。
当您收到数据时,您会知道它的大小。所以,只需使用
std::string str( RecvBuff, buff_len );