Разница в длине строки, возвращаемой разными компиляторами C++, может быть связана с настройками компиляции. 1 Например, у одного компилятора длина считается по байтам, у другого — по символам. 1
Также результат работы программы зависит от кодировки исходника. 4 Например, в кодировке utf-8 различные символы имеют различную длину в байтах: первые 128 — однобайтовые, а все остальные могут быть двухбайтовыми и даже больше. 1
Ещё одна возможная причина различий — конвертация компилятором строки из одной кодировки в другую: в этом случае строка хранится в памяти как массив wchar_t, где каждый элемент — строго один символ, и тогда длина строки определяется корректно. 4