0

在 C++strings中,在输入字符序列时复制直到NULL 接收到一个字符。但是如果你提供要读取的字符数,它会复制过去的NULL字符吗?我有一种情况,我可能会收到一条中间有一个 NULL 字符的消息,并且在它之后仍然有用信息。同样的问题也适用于追加。

同样find(),如果它碰到一个NULL 字符,它会停止搜索吗?

4

1 回答 1

3

您应该能够构造一个包含该'\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
于 2013-04-18T15:34:04.197 回答