匿名用户
1级
2009-06-11 回答
给你个单词替换的例子,稍微改改就可以达到你的要求了。
/* Filename: word-replace.c
* Description: 替换文件中指定的单词为其他字符串并输出到指定的文件中
*/
#include
#include
#include
#include
#define MAX_WORDS_LEN 50 // 单词的最大长度限制
typedef enum { FALSE = 0, TRUE = 1 } BOOL;
struct Word {
char str[MAX_WORDS_LEN + 1]; // 存储字符串
BOOL isWord; // 是否为单词
};
typedef struct Node { // 使用链表存储解析后的字符串
struct Word word;
struct Node *next;
} *List;
enum Option { // 单词替换选项
MATCH_WORD_CASE, // 精确匹配单词区分大小写
MATCH_WORD_NOCASE, // 匹配单词但不区分大小写
};
// 函数功能:出错处理方法,打印出错信息并退出程序
void complain(const char *msg)
{
printf("%s\n", msg);
exit(EXIT_FAILURE);
}
// 函数功能:将结构体单词 w 插入不带头节点的单向不循环链表 L 的末尾
// 参数L:不带头节点的单向不循环链表的表头指针
// 参数w:指向待插入链表 L 的结构体单词信息的指针
void insert_list(List * L, const struct Word *w)
{
struct Node *node = (struct Node *)malloc(sizeof(struct Node));
node->word = *w, node->next = NULL;
if (*L != NULL) { // 链表非空,则寻找链表的末尾并插入
struct Node *p;
for (p = *L; p->next !=