0

ref:c++ 示例代码在底部来自http://msdn.microsoft.com/en-us/library/windows/desktop/ms740120(v=vs.85).aspx 我有一个 char 数组

char RecvBuf[1024];

它在接收到 UDP 消息时被填满。如何将它存储在 std::string 变量中,string str;以便我可以从我的函数中返回一个字符串?

4

1 回答 1

3

使用以下构造函数std::string

string ( const char * s, size_t n );

基本上,如果RecvBuf是标准(文本)“字符串”,只需制作即可

std::string str( RecvBuf );

但这将复制所有chars,直到\0被击中。


由于此缓冲区存储从套接字接收的原始字节,因此您应该期望\0字节。

当您收到数据时,您就会知道它的大小。所以,只需使用

std::string str( RecvBuff, buff_len );
于 2012-10-18T13:16:22.780 回答