资源简介
对读入的某个文本文件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算法实现
- 建立一个单链表并进行升序排列
- 选课系统c (指针与链表)
- 动态链表的汇编语言实现
- 单链表的基本操作(实验)
- 链表实现通讯录管理系统
- STM32用链表实现多级菜单
- 数据结构课程设计——基于链表与哈
- 哈夫曼树--链表实现编码,解码
- 通讯录管理系统(c 链表)
- 约瑟夫环的四种算法循环链表等
- 线性表的基本操作vs2017
- STM32F4链表实现
- 整数链表
- 数据结构实现顺序结构、动态链表结
- 根据二叉树的抽象数据类型的定义,
- 双向链表及其应用——实现多项式的
- 利用带头结点的单链表实现两个集合
- 数据结构、表、栈,队列
- speex音频转pcm和aac
- 建立一个带头节点的双向链表
- 数据结构课程设计-城市链表
- 链表中删除相同结点实验报告及源码
- 用单向循环链表实现约瑟夫环问题
- win32汇编实现贪吃蛇
- 单链表的基本操作.c
- 两个链表求交集链表基础练习
- 数据结构链表交叉合并 排序
评论
共有 条评论