资源简介
对读入的某个文本文件input.txt中,拆出英文单词,输出一个按字典顺序排列的单词表,
结果输出在文本文件output.txt中,每个单词一行,并在单词后输出该单词出现的个数,
两个字段之间用逗号分隔。
约定单词仅由英文字母组成,单词间由非英文字母分隔,相同单词只输出一个,大小写不区分。
例如文本文件input.txt为:
Hello world.
Hello every one.
Let us go.
则输出文本文件output.txt为:
every,1
go,1
hello,2
let,1
one,1
us,1
world,1
代码片段和文件信息
/*版权:福建星网锐捷网络有限公司
*作者:XXX
*功能:实现从文件中读取没一个单词,并对单词进行统计,
*按字母顺序排列存入另一个文件中
*时间:2010-9-2 到 2010-9-3*/
#include
#include
#include
typedef struct Str{
struct Str *next;
char *str;
int num;
}f_str;
char * p_strs; /*input文件中是所有单词*/
int isf_len; /*input文件的长度*/
/*从文件input中读取文件内容,并返回给函数f_get_string*/
char * f_get_string()
{
FILE * in_file = NULL;
in_file = fopen(“d:/input.txt“ “rb“);
if (in_file == NULL) {
printf(“error!“);
} else {
fseek(in_file 0 SEEK_END);
isf_len = ftell(in_file); /*得到文件的长度*/
if (isf_len != -1) {
fseek(in_file 0 SEEK_SET);
p_strs = (char *)malloc(isf_len+100);
memset(p_strs 0 isf_len+100);
fread(p_strs sizeof(char) isf_len in_file); /*将文件的全部内容给p_strs*/
}
}
return p_strs;
}
/*将input文件中所有处理后的单词存入output文件中*/
void f_out_string(f_str * head)
{
FILE * out_file = NULL;
f_str * hp;
char * sstr;
char * sss = ““;
out_file = fopen(“d:/output.txt“ “wb+“);
if (out_file == NULL) {
printf(“error!“);
} else {
hp = head;
while (hp != NULL) {
sstr = malloc(20);
if (strcmp(hp->str sss) != 0) { /*strcmp比较两字符串的大小*/
sprintf(sstr “%s %d\r\n“ hp->str hp->num); /*将字符串型hp->str和整形的hp->num加到字符串sstr*/
fwrite(sstr sizeof(char) strlen(sstr) out_file); /*输出字符串到out_file*/
}
hp = hp->next;
free(sstr);
}
fclose(out_file);
}
}
/*对文件中每个单词统计,并按按字母顺序存储到链表中*/
f_str * order_str(f_str * head f_str * fstr int i)
{
f_str * hp = NULL;
if (i == 1) {
head = fstr;
fstr->next = NULL;
} else {
hp = head;
while (hp != NULL) {
if (strcmp(hp->str fstr->str) > 0) { /*strcmp比较两字符串的大小*/
head = fstr;
fstr->next = hp;
break;
} else if (strcmp(hp->str fstr->str) < 0
&& strcmp
相关资源
- 多线程安全链表操作的C程序
- 学生管理系统 根据数据结构的链表知
- 将两个升序链表A、B合并到C,并使C成
- 班级档案管理系统
- 数据结构课程设计全部系统合集超市
- 静态链表和动态链表详细讲解教程
- 用带表头的链表存放输入的数据,每
- 稀疏矩阵相加相乘三元组、十字链表
- 十字链表的定义及实现
- 排队论的仿真 离散事件系统仿真
- 学生籍贯信息记录簿1创建信息链表并
- 用链表实现的一个电话本小程序
- 树孩子—兄弟链表表示
- 大数阶乘用单链表实现大数阶乘
- 长整数加减法运算 双向链表
- 数据结构 建立二叉树二叉链表存储结
- Linux内核链表实现多客户端连接服务器
- 数据结构课程设计——静态单链表操
- 用邻接链表作存储结构的图类
- 数据结构课程设计报告基于双向循环
- 数据结构课程设计-通讯录(双链表全
- 双向链表的增删改查
- udp 多线程实现多客户端并发,并采用
- 实现关于链表的各种操作及排序
- 链表实验三
- 单链表的操作
- 数据结构之双向链表(完整版)
- 链表多项式的加法与乘法设计报告
- 多线程实现双向链表增删改
- 稀疏矩阵的十字链表表示方法:矩阵
评论
共有 条评论