⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 words.c

📁 <<c语言接口与实现>>一书源码,此书无疑是一部经典的c语言书籍,只可惜翻译的质量很差
💻 C
字号:
/*
This version of ids uses Text and Ring,
and reads the identifiers from right to left.
This version is a circuitous solution to Exercise 16.1.
*/
#include <stdlib.h>
#include <stdio.h>
#include "fmt.h"
#include "ring.h"
#include "text.h"
#include "mem.h"

int main(int argc, char *argv[]) {
	char buf[512];
	Text_save_T save = Text_save();
	Ring_T ring = Ring_new();
	Text_T first = Text_cat(Text_cat(Text_ucase, Text_lcase), Text_box("_", 1));
	Text_T rest  = Text_cat(first, Text_digits);

	Fmt_register('T', Text_fmt);
	while (fgets(buf, sizeof buf, stdin) != NULL) {
		Text_T line = Text_put(buf), *id;
		int j = 0;
		while ((j = Text_rupto(line, 1, j, first)) > 0) {
			int i = Text_rmany(line, 1, j + 1, rest);
			NEW(id);
			*id = Text_sub(line, i, j + 1);
			Ring_addlo(ring, id);
			j = i;
		}
		while (Ring_length(ring) > 0) {
			id = Ring_remlo(ring);
			Fmt_print("%T\n", id);
			FREE(id);
		}

	}
	Ring_free(&ring);
	Text_restore(&save);
	return EXIT_SUCCESS;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -