文本文件撇号麻烦

时间:2017-06-03 22:18:37

标签: c

我正在尝试从Project Gutenberg文本文件中读取并计算单词总数。我目前正在超调,因为带有撇号的单词被重复计算。但是,文本文件中的撇号字符与ASCII字符39不匹配,即'\'',因此我的is_word函数工作不正常。关于这个角色究竟是什么的任何建议?

注意:当我通过并在vim中手动替换撇号时,单词计数器工作正常。

链接到文字文件:http://www.gutenberg.org/ebooks/1342

1 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,但如果你这样做

#include <wchar.h>
#include <locale.h>

然后

setlocale(LC_ALL, "en_US.UTF-8");

然后拨打getwchar()getwc(fp)而不是getchar / getc,然后检查值8217以及'\'',您可能是能够让一切工作。

(它适用于我.YMMV。根据您的操作系统,您可能必须使用“en_US.UTF-8”以外的语言环境字符串。)

(如果这确实有效,欢迎来到internationalization这个精彩的世界。在这条道路上走下去,如果你希望你的代码能够正常工作,还有其他一些问题需要注意。所有情况和所有地区。)