Printf()函数简单实现

/************************************************************************/
/* coder:huifeng00
/* 时间:2010-5-23
/* 功能:简单实现自己的printf()函数,识别%d,%s,%c
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

void myprintf(const char *format, ...)
{
va_list ap;
char c,nc;

va_start(ap, format);
while (c = *format++)
{
if (c == '%'&&(nc=*format)!='/0')
{
format++;
switch(nc)
{
case 'c': //%c
{
/*为了内存对齐,所以要写int*/
char ch = va_arg(ap, int);
putchar(ch);
break;
}
case 's': //%s
{
char *p = va_arg(ap, char *);
fputs(p, stdout);
break;
}
case 'd'://%d
{
int data = va_arg(ap,int);
char buf[16];
itoa(data,buf,10);
fputs(buf,stdout);
break;
}
default:
putchar('%');
putchar(nc);
}
}
else
{
putchar(c);
}
}
va_end(ap);
}

int main(void)
{
int i = 100;
char ch ='n';
char data[] = "nihao";
myprintf("%d/n%c/n%s/n", i,ch, data);
return 0;
}

主要实现了%s,%d,%c。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值