C语言:模拟实现printf函数——my_printf函数哦
来源:互联网 发布:淘宝一件代发有人下单 编辑:程序博客网 时间:2024/06/07 22:11
#define _CRT_SECURE_NO_WARNINGS 10#include<stdio.h>#include<stdarg.h>#include<stdlib.h>#include<assert.h>#include<string.h>//int printf( const char *format [, argument]... );//模拟实现printf函数,可以实现my_printf(“s ccc”,“hello”,‘b’,‘i’,‘t’)char *int_str(int nums){ char str[32] = "0"; int i = 0; for (i = 31; i >= 0; i--) { str[i] = (nums & 1) + '0'; nums >>= 1; } printf("%s\n", str);}int my_printf(const char *format, ...){ assert(format); va_list arg_list; va_start(arg_list, format); int count = 0; const char *start = format; while (*start != '\0') { if (*start == '%') { start++; switch (*start) { case 's': { char *ret = va_arg(arg_list, char *); fputs(ret, stdout); count = count + strlen(ret); } break; case 'c': { char _c = va_arg(arg_list, char); putchar(_c); count++; } break; case 'd': { int _d = va_arg(arg_list, int); char buf[10]; _itoa(_d, buf,10); fputs(buf, stdout); count = count + strlen(buf); } break; case 'v': { int _dd = va_arg(arg_list, int); char *array = int_str(_dd); fputs(array, stdout); count = count + strlen(array); } break; } start++; continue; } putchar(*start); start++; count++; } va_end(arg_list); return count;}int main(){ my_printf("%s %c%c%c", "hello", 'b', 'i', 't'); system("pause"); return 0;}
0 0
- C语言:模拟实现printf函数——my_printf函数哦
- 【c语言】 模拟实现printf,要求功能: my_printf("dc\ts\ndc\ndc\ts!", ...)
- 模拟实现一个printf,函数可以实现my_printf("s ccc.","hello", 'n','i','h','a','o');//遇到s表示字符串
- C语言 printf函数实现
- C语言实现printf函数
- printf的实现,my_printf
- 模拟实现 printf 函数
- 模拟实现printf函数
- 模拟实现printf函数
- c语言入门——printf函数
- c语言printf函数
- C语言printf函数
- C++实现C语言printf函数
- 【C语言】模拟实现printf函数 可变参数列表的实战
- C语言程序-可变参数(3)模拟实现printf函数
- 简单模拟实现printf函数
- C语言实现printf函数,即参数可变函数原理
- 模拟实现printf函数,完成函数调用
- SPARK task执行与资源分配的关系
- Linux Shell编程-正则表达式
- macOS 10.12 不允许未知来源开发者的应用
- AndroidStudio 常见错误
- iOS alertController之actionsheet样式添加控件(类似自定义actionsheet)
- C语言:模拟实现printf函数——my_printf函数哦
- POJ3264 Balanced Lineup
- IE和DOM事件流的区别
- Android Service Framework (Native层的一个例子)
- bzoj 2662: [BeiJing wc2012]冻结
- CVPR 2016 Visual Tracking Paper Review
- React生命周期
- 浏览器关闭时弹出提示事件onbeforeunload
- uva1428 Ping pong