GLib предоставляет большую часть стандартной библиотеки C с проверками безопасности для ввода и усовершенствованиями, где это возможно.
Функция, которую вы ищете: g_ascii_strtoll()
.
педантичное приложение
atoi()
обрабатывает локаль так же, как strtol
AND g_ascii_strtoll()
. Очень внимательное прочтение man-страниц и документации Glib покажет это. Вот некоторые фрагменты для тех, кто не может RTFM :
atoi()
Функция atoi () преобразует начальную часть строки, на которую указывает nptr, в int. Поведение такое же, как у strtol(nptr, (char **) NULL, 10);
, за исключением того, что atoi () не обнаруживает ошибки.
strtol()
В локалях, отличных от локали "C", могут быть также приняты другие строки. (Например, разделитель тысяч текущей локали может поддерживаться.)
g_ascii_strtoll()
Преобразует строку в значение gint64. Эта функция ведет себя так же, как стандартная функция strtoll () в языке Си. Он делает это без фактического изменения текущей локали, поскольку это не будет потокобезопасным.
Изменение локали
Если этого недостаточно для локализации, вы можете установить локаль через переменные среды и / или явные вызовы setlocale()