当字符串包含多个NUL字符时,如何获取c_str(for send)?

时间:2014-04-19 18:08:45

标签: c++ string

我有超过 400万字符的字符串,我想通过套接字发送此字符串。但是,send()只能接受const char。我尝试使用c_str()

我的字符串包含多个空终止符\ 0,因此c_str ()无法正常工作。任何想法如何删除或替换 \ 0

2 个答案:

答案 0 :(得分:2)

您还可以指定要在同一功能中发送的缓冲区的长度。我还建议将4MB缓冲区分成小块,然后一个接一个地发送,因为send函数允许的缓冲区大小可能有限制。

答案 1 :(得分:0)

str.erase(std::remove(str.begin(), str.end(), '\0'), str.end());