#include "stdafx.h"
#include <stdio.h>
#include <stdarg.h>
void my_sprintf(char *str, char *fomat, ...)
{
char *p = fomat;
char *q;
char ch;
int i = ;
va_list ptr, l_ptr;//实际上是一个char*指针
va_start(ptr, fomat);//ptr指向第一个变参
vprintf(fomat, ptr);
vsprintf(str, fomat, ptr);
l_ptr = ptr;
while (*p != '\0')//数据解析范例va_arg的使用
{
while (*p != '%'&&*p != '\0'){ ++p; }
++p;
if (*(p) == 'd')
{
int a = va_arg(l_ptr, int);//l_ptr指向下一个变参
printf("%d", a);
}
else if (*(p) == 's')
{
q = va_arg(l_ptr, char*);
printf("%s", q);
}
else if (*(p) == 'c')
{
ch = va_arg(l_ptr, char);
printf("%c", ch);
}
}
va_end(ptr);//复位指针
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[];
my_sprintf(str, "%d%c%d%s \n", , 'b', , "hello");
printf("%s", str);
return ;
}

最新文章

  1. sql 查询表的所有详细信息
  2. C语言中scanf()的用法!
  3. CodeForces - 407A
  4. HDU 2795 Billboard(线段树的另类应用)
  5. ui方案设计
  6. 谈谈JPA-04-JPA的常用API
  7. cocso2d-x改变精灵图片
  8. asp.net 操作word
  9. [CSS3 Animation] TweenMax.staggerTo()
  10. Android SQLITE数据类型
  11. Python并发编程__多进程
  12. Android快速实现上传项目到Github
  13. 【CODEVS 6384 大米兔学全排列】
  14. ajaxStart()和ajaxStop()
  15. 区块链名词解析:ICO、IFO、IEO和IMO,分别是什么呢?
  16. Web开发经验谈之F12开发者工具/Web调试[利刃篇]
  17. MongoDB的安装与python操作MongoDB
  18. html 网页代码大全,总结,使用
  19. [转][C#]Combobox 行高
  20. screen对象和history对象

热门文章

  1. COGS——T2084. Asm.Def的基本算法
  2. 《Java并发编程实战》第五章 同步容器类 读书笔记
  3. 实习第一天(安装svn管理工具跟tomcat插件)
  4. 服务器性能监控tips
  5. How to search Installed Updates
  6. 初学PHP&amp;MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏
  7. Coderfroces 862 C. Mahmoud and Ehab and the xor
  8. Python环境搭建—安利Python小白的Python安装详细教程
  9. android+myeclipse+mysql下拉框数据绑定
  10. 【Henu ACM Round#17 E】Tree Construction