Я пытаюсь построить строку в C++, как показано ниже.Какой конструктор std :: string вызывается здесь?
const char *cstring = "abcd";
const string cppstr = string(cstring, cstring + strlen(cstring));
Это работает отлично и cppstr имеет значение «ABCD», даже если она не совпадает ни с одной из строк конструкторов, указанных в стандарте. Может кто-нибудь, пожалуйста, дайте мне знать, какой конструктор строки вызывается в этом конкретном случае.
Или даже просто 'const string cppstr {cstring};' – rici
@rici: если я использую const string cppstr (cstring), созданная строка будет содержать в ней '\ 0'. – kadina
@kadina Уверены ли вы в этом? Конструктор предназначен для остановки, как только он набирает нулевой ограничитель. – templatetypedef