博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言:模拟实现printf函数——my_printf函数哦
阅读量:4096 次
发布时间:2019-05-25

本文共 1836 字,大约阅读时间需要 6 分钟。

#define _CRT_SECURE_NO_WARNINGS 10#include
#include
#include
#include
#include
//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;}

转载地址:http://remii.baihongyu.com/

你可能感兴趣的文章
凭借这份文档,阿里Java岗四面直接定级P8,面经面试题分享
查看>>
Spring Boot在微服务中的最佳实践
查看>>
请把 .gitattributes 加到你的 Git 仓库中
查看>>
太赞了!美团T9终于整理出Java架构之完美设计实战开源文档
查看>>
一篇文章让你了解基于Spring的测试
查看>>
10个微服务架构设计的最佳实践
查看>>
分布式ID生成策略,我和面试官掰扯了一个小时
查看>>
逆袭大厂之路——Java程序员必备金九银十跳槽面试涨薪秘籍
查看>>
清华架构师熬夜整理,带你走进Kafka消息中间件
查看>>
GitHub上标星120k的Java进阶面试教程等!(建议收藏)
查看>>
为什么说Java程序员到了必须掌握SpringBoot的时候
查看>>
基于Rust-vmm实现Kubernetes运行时
查看>>
阿里P8架构师呕心沥血整理出这份Spring Cloud实战
查看>>
Spring Boot 如何快速集成 Redis 哨兵?
查看>>
认识 MongoDB 一篇文章就够了认识 MongoDB 一篇文章就够了
查看>>
聊聊Mysql——慢sql优化方法论
查看>>
近万服务实例稳定运行 0 故障,携程微服务架构是如何落地的?
查看>>
就这一次:TCP、IP、操作系统、Netty、算法一次性讲透
查看>>
大厂面试题中爱问的「调度算法」,20张图一举拿下
查看>>
一篇文章带你深入了解MySQL 索引相关
查看>>