удалить акценты из строки в C - PullRequest
4 голосов
/ 14 марта 2012

есть более эффективный способ удалить акценты из строки без создания большого массива с символами для замены?

например:

removeaccents("áèfoo")

выход:

aefoo

в ASCII таблице нет акцентов, я понятия не имею, как это сделать. Заранее спасибо. :)

1 Ответ

7 голосов
/ 14 марта 2012

Звучит так, будто вы ищете unac(). Со страницы руководства:

unac - это библиотека C, которая удаляет акценты из символов, независимо от набора символов (ISO-8859-15, ISO-CELTIC, KOI8-RU ...), если iconv(3) может преобразовать ее в UTF-16 (Unicode).

Я не смог найти страницу загрузки (я думаю, она должна быть здесь , но ссылка в настоящее время 404ing). Если вы используете Ubuntu, вы можете получить его с помощью:

sudo apt-get install libunac1-dev

Предполагая, что вы используете gcc, после установки вам нужно будет добавить -lunac к параметрам вашего компилятора (чтобы указать компилятору связываться с библиотекой unac).

...