//使用可变参数列表实现print("s\t c\n","bit-tech",‘w‘);

#include

#include

void int_to_char(int num)

{

if ((num / 10) > 0)

int_to_char(num / 10);

putchar(num %10+ 48);

}

void my_print(char p[],...)

{

char *str1 = p;

int num = 0;

char *pVal;

va_list str;

va_start(str,p);

while (*str1)

{

if (*str1 == ‘%‘&&*(str1 + 1) != ‘\0‘)

{

str1++;

if (*str1 == ‘d‘)

{

num = va_arg(str, int);

int_to_char(num);

}

if (*str1 == ‘s‘)

{

pVal= (char *)va_arg(str, char *);

while (*pVal)

{

putchar(*pVal);

pVal++;

}

}

if (*str1 == ‘c‘)

{

putchar(va_arg(str, char));

}

}

else if(*str1 == ‘\n‘)

{

putchar(‘\n‘);

}

else if (*str1 == ‘\t‘)

{

putchar(‘\t‘);

}

else

putchar(*str1);

str1++;

}

va_end(str);

}

int main()

{

int a=1010;

char b[20]="我是帅哥!";

char c = ‘#‘;

my_print("你\n%c是猪\n%d\n哈哈\n%s\n\t

return 0;

}

原文:http://shaungqiran.blog.51cto.com/10532904/1681698

c语言可变参数 printf,c语言 使用可变参数列表实现printf(my_printf)相关推荐

  1. 参数控制c语言代码走向,C语言可变参数完全解读

    本文转自:http://www.cnblogs.com/wangyonghui/archive/2010/07/12/1776068.html 一.是什么 我们学习C语言时最经常使用printf()函 ...

  2. 编写可变参数函数 c语言,C语言可变参数函数的编写

    1. 引言 C语言我们接触的第一个库函数是 printf("hello,world!");其参数个数为1个. 然后,我们会接触到诸如: printf("a=%d,b=%s ...

  3. c语言函数可变长参数,一种使用变长参数为C程序构造灵活回调函数的方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int twice(void *arg, va_list ap) { apply_func *func = va_arg(ap, apply_func * ...

  4. ccs用C语言进行printf时,DSP:CCS V6 TMS320F2812 使用printf函数

    使用Code Composer Studio  Version: 6.1.1.00022,建立TMS320F2812工程. /* * main.c */ #include int main(void) ...

  5. c语言用户输入编程,C语言入门教程-Printf:读取用户输入

    Printf:读取用户输入 前面的程序很好,但要是如果能从用户那里读入值5和7而不是使用固定的值的话,那就更好了.可以改为下面的程序: #include int main() {int a, b, c ...

  6. c语言函数声明定义参数命名,C语言函数声明与定义

    C语言函数声明与定义教程 在 C语言函数声明与定义 语法 type funcName(paramType1 param1, paramType2 param2){ // 执行语句... return ...

  7. 在c语言中,可以使用动态内存分配技术定义元素个数可变的数组,C语言复制在线考题1精选.doc...

    C语言复制在线考题1精选 窗体顶端 <C语言程序设计208304>综合测试 返回测验列表 大项 1 / 2 - 单项选择题 60.0/ 70.0 分 本大题共35道,每题2分,共计70分, ...

  8. [转载] c语言中检查命令行参数_C中的命令行参数

    参考链接: Java中的命令行参数 c语言中检查命令行参数 Command line argument is a parameter supplied to the program when it i ...

  9. c语言flag go to,C 语言getopt与go语言flag获取命令参数

    C语言中的getopt()函数为命令参数的获取提供了很大便利,与golang中的flag功能类似. C语言getopt 下面以ssh中获取主机名/ip和用户名为例来示例如何使用getopt(). in ...

  10. 以下c语言程序片段用于估测cpu的cache参数,阿里巴巴笔试题

    阿里巴巴笔试题 1.平均速度最快的排序算法是______. Shell排序 快速排序 冒泡排序 插入排序 2014-03-29 18:36:02 2.某服务进程的QPS(没秒处理的请求个数)较低,在空 ...

最新文章

  1. U盘如何量产成USB-CDROM
  2. 关于产品 / 市场契合点 PMF 的 12 个问题全解读(下)
  3. 适配器模式(为被封装对象提供不同的接口)
  4. 强行杀windows服务
  5. JDBC通过连接池链接数据库总是失败的解决办法
  6. Nagios3完整配置文档
  7. 第17讲 | 去中心化与区块链交易性能
  8. Linux 命令行历史及其history
  9. HTTP报文结构详解
  10. 日常生活记账的账本你知道吗
  11. Android LayoutInflater源码分析
  12. MySQL(4) 数据库增删改查SQL语句(整理集合大全)
  13. python爬取有声小说_python写的有声小说爬虫
  14. js截取指定字符串后面的所有字符
  15. 哲学初感 ---- 《苏菲的世界》总结
  16. WebLogic 12C服务器无法打印log4j日志问题,与log4j日志动态打印记录
  17. 【请收藏】写博客必备工具总结篇
  18. 基于PageRank的复杂网络社区发现
  19. 今天给自己分享下我的心得体会
  20. effective C++ 第三版

热门文章

  1. heroku java_部署Java Web项目到Heroku
  2. c语言学习进阶-C语言程序实现矩阵乘法
  3. Job System之Hello World
  4. Leecode刷题热题HOT100(9)——回文数
  5. (三)用于构建AI语言翻译系统的工具
  6. (三)标记图像以进行AI模型训练
  7. 在Docker中运行ASP.NET Web API解决方案
  8. linux hadoop namenode_HADOOP_HDFS伪分布式安装步骤
  9. oracle 的 dml,Oracle——DML
  10. cnn stride and padding_Pytorch实现神经网络CNN案例