strlen
сложность O (1), потому что структура строки сохраняет длину строки, но как насчет mb_strlen
? И, пожалуйста, объясните мне, почему?
Смотря на исходный код в худшем случае это O (N).
mbtab = encoding->mblen_table;
n = 0;
p = string->val;
k = string->len;
/* count */
if (p != NULL) {
while (n < k) {
m = mbtab[*p];
n += m;
p += m;
len++;
};
}
Других решений пока нет …