标题:求助:词频统计方法,从文件中读取字符串问题!
只看楼主
千i丶羽o
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2010-12-13
结帖率:60%
已结贴  问题点数:20 回复次数:4 
求助:词频统计方法,从文件中读取字符串问题!
用fscasnf()读取文件中的数据时,用什么方法不具体限定字符串长度,二十通过判断回车来觉得读入的字符串长度!
比如说文件内容如下:
第一行 生的DAF……%生法  对方身份 &*到底4的
第二行 大开发……#是啊发1221发生
.
.
.
.
.
最后一行:方式打法090飞逝34%@#%*&地方

目的:读取文件,统计文件中的汉字个数!并去掉其他字符(如特殊字符数字等等,)
方法:一行一行的读,删去每行的特殊符号和数字!
搜索更多相关主题的帖子: 特殊符号 特殊字符 字符串 汉字 统计 
2011-03-11 10:41
千i丶羽o
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2010-12-13
得分:0 
再加深一下!统计词语的词频(相同词语出现的个数并打印)!不是汉字!又如何统计
文件如下
第一行:无语\N  统筹(流行)楚天、V
第二行:.......
.
.
.
..
最后一行:......................
2011-03-11 10:44
新手写程序
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:120
注 册:2011-3-5
得分:0 
#include <locale.h>
char *setlocale(int category, const char *locale);

这是设置当前的字符集合
比如在linux下你可以设成"zh_CN.UTF-8";Mic window 你就查一下
这样你就可以输入中文进入wchar_t里面去了
然后就是一般的字符操作了来操作中文了
一个简单的输入中文的小例子
#include <stdio.h>
#include <locale.h>
#include <wchar.h>

int main(){
    wchar_t wch[1000];

    char * locname = NULL;
    locname = setlocale(LC_ALL, "zh_CN.UTF-8");
    fgetws(wch, sizeof wch, stdin);
    printf("%ls\n", wch);
    return 0;
}
2011-03-11 11:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
“过判断回车来觉得读入的字符串长度”
--- fgets,如果行结束了,那么最后是个\n,否则不是。

“一行一行的读,删去每行的特殊符号和数字!”
--- 这种方法真烂,如果我来做,就4k为一个块的读取,然后处理,将尾部留下的暂时还不能处理的归到第二次中。
例如
char buf[4k+1];
fread( buf+1, 4k );
从buf+1开始处理
if( buf[4k] 能处理 )
{
    读入下一个4k块至buf+1
    从buf+1开始处理
}
else
{
    buf[0] = buf[4k];
    读入下一个4k块至buf+1
    从buf+0开始处理
}

2011-03-11 12:48
千i丶羽o
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2010-12-13
得分:0 
回复 4楼 rjsp
恩,我是新手,能在具体些么?多谢啦
1)fgets()字符输入不是有限制么?有个格式fgets(str,n,fp);
意思是从fp所指的文件中读出n-1个字符,送人字符串str中。你说的判断'\n'的那个具体怎么用啊!希望具体说说。
2)你说的4k为一块值得是4个字符为一组去判定么?fread()的用法我查了资料也没弄清楚!也请具体说说

[ 本帖最后由 千i丶羽o 于 2011-3-11 15:26 编辑 ]
2011-03-11 15:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-333809-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.979405 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved