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

📄 textnum.c

📁 c语言的小编译器,学习的好东东.
💻 C
字号:
#include \mc\stdio.h

/*
 * Main program which processes all of its arguments, interpreting each
 * one as a numeric value, and displaying that value as english text.
 *
 * Copyright 1990 Dave Dunfield
 * All rights reserved.
 */
main(argc, argv)
	int argc;
	char *argv[];
{
	int i;

	if(argc < 2)				/* No arguments given */
		abort("\nUse: textnum <value*>\n");

	for(i=1; i < argc; ++i) {	/* Display all arguments */
		textnum(atoi(argv[i]));
		putc('\n', stdout); }
}

/*
 * Text tables and associated function to display an unsigned integer
 * value as a string of words. Note the use of RECURSION to display
 * the number of thousands and hundreds.
 */

/* Table of single digits and teens */
char *digits[] = {
	"Zero", "One", "Two", "Three", "Four", "Five", "Six",
	"Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve",
	"Thirteen", "Fourteen", "Fifteen", "Sixteen",
	"Seventeen", "Eighteen", "Nineteen" };

/* Table of tens prefix's */
char *tens[] = {
	"Ten", "Twenty", "Thirty", "Fourty", "Fifty",
	"Sixty", "Seventy", "Eighty", "Ninety" };

/* Function to display number as string */
textnum(value)
	unsigned value;
{
	char join_flag;

	join_flag = 0;

	if(value >= 1000) {				/* Display thousands */
		textnum(value/1000);
		fputs(" Thousand", stdout);
		if(!(value %= 1000))
			return;
		join_flag = 1; }

	if(value >= 100) {				/* Display hundreds */
		if(join_flag)
			fputs(", ", stdout);
		textnum(value/100);
		fputs(" Hundred", stdout);
		if(!(value %= 100))
			return;
		join_flag = 1; }

	if(join_flag)					/* Separator if required */
		fputs(" and ", stdout);

	if(value > 19) {				/* Display tens */
		fputs(tens[(value/10)-1], stdout);
		if(!(value %= 10))
			return;
		putc(' ', stdout); }

	fputs(digits[value], stdout);	/* Display digits */
}

⌨️ 快捷键说明

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