【c语言】 模拟实现printf,要求功能: my_printf("dc\ts\ndc\ndc\ts!", ...)
来源:互联网 发布:手机管理淘宝店铺 编辑:程序博客网 时间:2024/06/04 17:50
模拟实现printf功能输出如下形式,'d'输出整形,'c'输出字符型,'s'输出字符串,其他输出自身形式
my_printf("dc\ts\ndc\ndc\ts!",1, 'b',"zhangweina",2, 'i', 3,'t', "welcome to you");
可变参数列表的一些小知识:
//宏 stdard.h
//va_list 声明一个类型
//va_start 第一个参数为va_list变量的名字,第二个参数为省略号前最后一个有名字的参数。
// 用来初始化变量,即将其设置为指向可变参数部分的第一个参数。
//va_arg 第一个参数为va_list变量的名字,第二个参数为可变参数的类型。
// 调用一次,就指向下一个可变参数。返回值的类型即为第二个参数的类型。
//va_end 访问完最后一个参数,调用va_end.
#include<stdio.h>#include<stdlib.h>#include<stdarg.h>#include<string.h>//自定义输出函数,按照str的字符顺序输出 字符,字符串,数字void my_printf(const char *str, int len, ...){va_list arg; va_start(arg, len); for (int i = 0; i < len; i++,*str++){char a = 0;char *a1 = NULL;int a2 = 0;//多分支语句,分情况讨论switch (*str){case 'c': //参数是字符型,char类型a = va_arg(arg, char);putchar(a);break;case 's': //参数是字符串时,char*类型a1 = va_arg(arg,char*);while (*a1){putchar(*a1);*a1++;}break;case 'd': //参数是整形,int类型 a2 = va_arg(arg, int);putchar(a2+'0');break;default: //参数是其他,按照本来形式输出putchar(*str);break;}}va_end(arg);}int main(){char *str = "dc\ts\ndc\ndc\ts!";int len = strlen(str);my_printf(str, len,1, 'b',"zhangweina",2, 'i', 3,'t', "welcome to you");system("pause");return 0;}
本文出自 “娜些维度的雪” 博客,请务必保留此出处http://1536262434.blog.51cto.com/10731069/1711528
0 0
- 【c语言】 模拟实现printf,要求功能: my_printf("dc\ts\ndc\ndc\ts!", ...)
- c语言:模拟实现printf,要求功能:print("ccc\ts!",'b','i','t',"welcome to you");
- C语言:模拟实现printf,要求功能:print("ccc\ts!",'b','i','t',"welcome to you");
- C语言:模拟实现printf函数——my_printf函数哦
- JS:"全选"功能实现(checkbox)
- String s = "a" + "b" + "c" + "d" + "
- extern "c"
- printf的实现,my_printf
- C语言提示:什么是"逻辑或";…
- log4j ndc
- scanf("%c",&c)前的printf函数调用…
- 说说程序员 "必备能力"
- "跟对人" 比 "能干" 更重要!
- TS
- ts
- TS
- TS
- ts
- 【c语言】 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
- 【c语言】 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
- Forfiles命令详解
- 利用Spark解析Tomcat日志,并将统计结果存入Mysql数据库
- 【c语言】       小游戏——猜字游戏
- 【c语言】 模拟实现printf,要求功能: my_printf("dc\ts\ndc\ndc\ts!", ...)
- #247 Segment Tree Query II
- 【c语言】 编写一个函数reverse_string(char * string)(递归实现)
- 【顺序表】 c语言的顺序表
- 【动态顺序表】 c语言的动态顺序表
- 【单链表】 c语言的单链表
- 【面试题】 单链表的热点面试题(1 )
- 2016 年全国房价会呈什么趋势?
- 【linux】浅谈Linux下的 find 指令