在 C++strings
中,在输入字符序列时复制直到NULL
接收到一个字符。但是如果你提供要读取的字符数,它会复制过去的NULL
字符吗?我有一种情况,我可能会收到一条中间有一个 NULL 字符的消息,并且在它之后仍然有用信息。同样的问题也适用于追加。
同样find()
,如果它碰到一个NULL
字符,它会停止搜索吗?
您应该能够构造一个包含该'\0'
字符的字符串:
const char a[] = "Hello\0world";
std::string s(a, sizeof(a));
std::cout << "a = \"" << a << "\"\n";
std::cout << "s = \"" << s << "\"\n";
std::cout << "sizeof(a) = " << sizeof(a) << '\n';
std::cout << "strlen(a) = " << std::strlen(a) << '\n';
std::cout << "s.length() = " << s.length() << '\n';
上面的代码片段将打印
a = "你好" s = "你好世界" 大小(a) = 12 strlen(a) = 5 s.length() = 12