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 = "ハローワールド"
sizeof(a) = 12
strlen(a) = 5
長さ () = 12
于 2013-04-18T15:34:04.197 に答える