и прочие?
https://en.cppreference.com/w/cpp/string/basic_string
Sizeof()
sizeof нужен, чтобы узнать размер типа или объекта в байтах. в прикладном коде это означает "практически никогда" и единственный тип, как-то похожий на строку, на котором этот оператор выдаст что-то осмысленное - это const char[N] для известного N. довольно ограниченная применимость, особенно учитывая задачу "узнать N"
А если sizeof разделить на размер чара в байтах? С массивом же работает
ну во-первых, sizeof(char) == 1 гарантированно, можно не делить во-вторых, смысла так делать нет, когда есть std::size, который работает на всём, на чём имеет смысл, включая массивы; а (sizeof(arr)/sizeof(*arr)) компилируется даже в тех случаях, когда является полным бредом (например, arr - указатель или std::optional) ну и в-третьих, изначальный вопрос был про строки, а char[] - лишь один из типов с семантикой "строки". вероятнее, что вопрошающий имел в виду std::string, раз уж он спрашивал про методы
Обсуждают сегодня