- 论坛徽章:
- 0
|
初学c,很多搞不懂,现在想从一个文本词典文件中(就是gg输入法导出的那个)查找一个字符串,写了一个程序,但是utf-8的编码每个汉字占3字节,我写的程序是在分段读取过程中可能会把汉字切掉,导致词典中明明有这个词但是无法找到,哪位大师能够指点一下,我写的代码如下:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(void) {
- int ch;
- FILE * fp;
- char td[300];
-
- fp=fopen("gg.dic", "rb");
- while(!feof(fp)) {
- fread(td,sizeof(td),1,fp);
- if(strstr(td, "麒麟")) {
- printf("%s", td);
- }
- }
- // fwrite(&f, sizeof(f), 1, fp);
-
-
- fclose(fp);
-
-
- return 0;
- }
复制代码
下面其实还有一个附加问题,就是我如果把查找的字符串赋值给变量s,把s带入strstr查找,会找不到任何东西,这里面有什么玄机吗,哪位知道望指点
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(void) {
- int ch;
- FILE * fp;
- char s[6] = "麒麟";
- char td[300];
-
- fp=fopen("gg.dic", "rb");
- while(!feof(fp)) {
- fread(td,sizeof(td),1,fp);
- if(strstr(td, s)) {
- printf("%s", td);
- }
- }
- // fwrite(&f, sizeof(f), 1, fp);
-
-
- fclose(fp);
-
-
- return 0;
- }
复制代码 |
|