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 = "ハローワールド" sizeof(a) = 12 strlen(a) = 5 長さ () = 12