当前位置: 首页 > news >正文

The C programming language (second edition,KR) exercise(CHAPTER 7)

      E x c e r c i s e 7 − 1 Excercise\quad 7-1 Excercise71

#include <stdio.h>
#include <string.h>
#include <ctype.h>enum type { LOWER, UPPER };int main(int argc, char *argv[])
{int c, mode = -1;if (stricmp(*argv, "lower.exe") == 0) {printf("To lower\n");mode = LOWER;		}else if (stricmp(*argv, "upper.exe") == 0) {printf("To upper\n");mode = UPPER;	}		if (mode == LOWER){while ((c = getchar()) != EOF)putchar(tolower(c));		}else if (mode == UPPER){while ((c = getchar()) != EOF)putchar(toupper(c));		}return 0;
}

      E x c e r c i s e 7 − 2 Excercise\quad 7-2 Excercise72

#include <stdio.h>
#include <ctype.h>/* "%x" for hex, "%o" for octal */ 
#define FORMAT "%x" 
#define LINELEN 75int main()
{int c, i = 0;while ((c = getchar()) != EOF){/* reset line length counter */ if (c == '\n') i = 0;/* check if equal to line length. If so, print new line and reset counter */ 	else if (++i == LINELEN) {i = 0;putchar('\n');}/* graphic characters and spaces */ if (isgraph(c) || isspace(c)) {putchar(c);			}else{/* non-graphic characters */printf(FORMAT, c);  			}}return 0;
}

      E x c e r c i s e 7 − 3 Excercise\quad 7-3 Excercise73

#include <stdio.h>
#include <stdarg.h>void minprintf(char *fmt, ...);int main()
{char *sval = "10";int ival = 11;double dval = 12.13;unsigned int uival = 14;char cval = 'F';void *pval = sval;minprintf("%%s=%s, %%d=%d, %%i=%i, %%f=%f, %%e=%e, %%E=%E, %%g=%g, %%G=%G, %%o=%o, %%x=%x\n", sval, ival, ival, dval, dval, dval, dval, dval, uival, uival);printf("%%s=%s, %%d=%d, %%i=%i, %%f=%f, %%e=%e, %%E=%E, %%g=%g, %%G=%G, %%o=%o, %%x=%x\n", sval, ival, ival, dval, dval, dval, dval, dval, uival, uival);minprintf("%%X=%X, %%u=%u, %%c=%c, %%p=%p, %%%%=%%\n", uival, uival, cval, pval);printf("%%X=%X, %%u=%u, %%c=%c, %%p=%p, %%%%=%%\n", uival, uival, cval, pval);
}/* minimal printf with variable argument list */ 
void minprintf(char *fmt, ...)
{/* points to each unnamed arg in turn */ va_list ap; char *p, *sval, format[3] = { '%', '\0', '\0' };int ival;double dval;unsigned int uival;void *pval;/* make ap point to 1st unnamed arg */ va_start(ap, fmt); for (p = fmt; *p; p++){if (*p != '%'){putchar(*p);continue;}switch (*++p){case 'd': case 'i': case 'c': /* char is promoted to int when passed through '...' */ ival = va_arg(ap, int);format[1] = *p;printf(format, ival);break;case 'f': case 'e': case 'E': case 'g': case 'G':dval = va_arg(ap, double);format[1] = *p;printf(format, dval);break;case 's':for (sval = va_arg(ap, char *); *sval; sval++)putchar(*sval);break;case 'x': case 'X': case 'o':  case 'u':uival = va_arg(ap,<
http://www.lryc.cn/news/416807.html

相关文章:

  • 面向服务架构(SOA)介绍
  • 关于使用Next遇到的一些新特性
  • Python 爬虫入门(七):requests 库的使用「详细介绍」
  • 两端约束的最优控制问题及其数值解法
  • 电磁仿真--基本操作-CST-(6)-导线周围磁场
  • 用Java手写jvm之模拟方法调用指令invokexxx和方法返回指令xreturn
  • 自定义枚举类型检查
  • 探索四川财谷通抖音小店:安全与信赖的购物新体验
  • systemd-manage系统服务图形化管理工具使用教程
  • 移除元素(LeetCode)
  • 代码随想录27期|Python|Day38|509斐波那契|738.爬楼梯|746.746. 使用最小花费爬楼梯
  • windows docker容器部署前端项目
  • 科普文:微服务之全文检索ElasticSearch 集群的搭建
  • QtObject是干什么的?
  • 锐捷RCNA | 远程登录与路由技术
  • 实现Vue-tiny-diff算法
  • 正则表达式测试工具
  • Github 2024-08-02 开源项目日报 Top9
  • 重生之我 学习【数据结构之顺序表(SeqList)】
  • 前端day4-表单标签
  • vue3-print-nb 表格打印分页,第一页有空白的情况出现解决方法(两种:一种原生,一种基于element表格)
  • 搜维尔科技:借助 Xsens中的远程人体录制功能,可以在任何位置以无限量同时捕捉无限数量演员的身体动作
  • 2024/08 近期关于AI的阅读和理解[笔记]
  • SmartEDA:解锁设计新境界,从工具到灵感的飞跃之旅!
  • 解决Minizip压缩后解压时的头部错误问题
  • 数据库表水平分割和垂直分割?
  • Linux源码阅读笔记18-插入模型及删除模块操作
  • 力扣面试经典算法150题:移除元素
  • java关于前端传布尔值后端接收一直为false问题
  • 工具学习_CVE Binary Tool