Я сейчас сталкиваюсь с определенными проблемами со strlen (во многих случаях я читаю файлы, и строка не заканчивается на ноль).Поэтому я подумал о том, чтобы сделать процедуру сборки для расчета длины моих струн.То, что я хотел бы сделать, это просто вернуться назад от конца строки, пока я не столкнусь с моим первым символом, а затем вычислить длину строки.На самом деле у меня уже есть тот, который я написал некоторое время назад, когда писал программы на ассемблере.
Теперь я хотел бы знать, есть ли причина, по которой я не должен этого делать?Какие-то конкретные преимущества, которые я бы потерял?
Другой альтернативой будет просто сделать каждый член моего массива символов равным нулю.Я мог бы сделать это в сборке по 4 байта за раз или даже через простой цикл for.
Имейте в виду, что я имею в виду массивы значительных размеров [64k].Из-за большой длины обработка должна быть очень быстрой, поскольку мне нужно отобразить файл, как только пользователь выберет его.
РЕДАКТИРОВАТЬ: Чтобы уточнить, сказав, что я знаю, что я знаю длинуЯ имею в виду строку:
char* buffer = new char[length];
Я знаю length
.Но когда я заполняю этот буфер, я не знаю точную длину, до которой он имеет символы ascii.Когда я использую strlen
, это не дает мне текущую длину.В основном length
может быть 500, но в нем может быть только 5 допустимых символов, а остальные 495 могут быть значениями мусора.