Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除C中字符串的重音符号?_C_Non Ascii Characters - Fatal编程技术网

如何删除C中字符串的重音符号?

如何删除C中字符串的重音符号?,c,non-ascii-characters,C,Non Ascii Characters,有并没有一种更有效的方法来消除字符串中的重音符号,而不使用要替换的字符生成一个大数组 例如: removeaccents("áèfoo") 输出: aefoo 在ASCII表格中没有重音符号,我不知道如何做到这一点。提前感谢。:) 听起来像是你在找的。从手册页: unac是一个C库,它可以从字符中删除重音符号,而不考虑字符集(ISO-8859-15、ISO-CELTIC、KOI8-RU…),只要iconv(3)能够转换它 转换为UTF-16(Unicode) 我找不到下载

有并没有一种更有效的方法来消除字符串中的重音符号,而不使用要替换的字符生成一个大数组

例如:

removeaccents("áèfoo")
输出:

aefoo

在ASCII表格中没有重音符号,我不知道如何做到这一点。提前感谢。:)

听起来像是你在找的。从手册页:

unac
是一个C库,它可以从字符中删除重音符号,而不考虑字符集(ISO-8859-15、ISO-CELTIC、KOI8-RU…),只要
iconv(3)
能够转换它 转换为UTF-16(Unicode)

我找不到下载页面(我想应该是这样的,但是链接现在是404)。如果您使用的是ubuntu,您可以通过以下方式获得:

sudo apt-get install libunac1-dev

假设您使用的是gcc,安装后您需要将
-lunac
添加到编译器选项中(告诉编译器链接到unac库)

你总是可以使用一个if梯子而不是一个翻译表。你知道字符串使用什么编码吗?可能的帮助问题:@ CikuBa:它不是一个复制品——问题是关于C++的,而这是关于C.<代码>”的A.A.Foo“< /Cord>”不是一个有效的字符串文字。你到底想要什么?非常感谢。:)我下载并安装了,但是当我尝试链接和编译时,我得到了以下错误:
/tmp/ccAKGVl9.o:In function
main:ILD.c:(.text+0x651):对
unac_string'collect2的未定义引用:ld返回了1个退出状态
my code:
\include/。。。char*out=0;大小输出长度=0;if(unac_string(“ISO-8859-1”、“été”、strlen(“été”)、&out和out_length)){printf(“unac_string”);}else{printf(“%s0”,out_length,out”);free(out);}
我使用
gcc
上的
-lunac
选项解决了问题,并将
ISO-8859-1
更改为
UTF-8
编码,现在工作正常。非常感谢:)