Ответ 1
strlen()
используется для получения длины массива символов/строки.
sizeof()
используется для получения фактического размера любого типа данных в байтах.
Кроме того, sizeof()
- это выражение времени компиляции, дающее вам размер типа или типа переменной. Он не заботится о значении переменной.
strlen() - это функция, которая принимает указатель на символ и перемещает память от этого символа, ища символ NULL. Он подсчитывает количество символов до того, как найдет символ NULL. Другими словами, он дает длину строки с NULL-концами C-стиля.
Оба они почти разные. В С++ вам не нужно слишком много, strlen() для строк C-стиля, который должен быть заменен С++-style std::strings
, тогда как основное приложение для sizeof()
в C является аргументом для таких функций, как malloc()
, memcpy()
или memset()
, которые вы не должны использовать в С++ (используйте новые, std::copy()
и std::fill()
или constructors
).