您的位置:首页 > 其它

Printf()函数简单实现

2010-11-25 15:13 309 查看
/************************************************************************/

/* 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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: