#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <math.h>
void myprintf(const char *format, ...)
{
va_list ap;
char c;
va_start(ap, format);
while(c = *format++)
{
switch(c)
{
case 'c': {
char ch = va_arg(ap, int);
putchar(ch);
break;
}
case 's':
{
char *p = va_arg(ap, char *);
fputs(p, stdout);
break;
}
case 'd':
{
int a = va_arg(ap, int);
int len, i, b;
b = a;
b = abs(b);
while (b)
{
b = b / 10;
len++;
}
if(a < 0)
{ len++;}
char f[len+1];
f[len] = '/0';
b = a;
b = abs(b);
for(i = len -1; i >= 0; i--)
{
f[i] = b % 10 + '0' ;
b = b / 10;
}
{ if(a < 0)
f[0] = '-';}
puts(f);
len = 0;
break;
}
default :
putchar(c);
}
}
va_end(ap);
}
int main(void)
{
char c = 'I';
myprintf("d/td/tc/ts/n", 40, -2, c, "hello");
return 0;
}
my_printf
最新推荐文章于 2023-12-06 16:06:45 发布