模拟实现printf函数,可完成下面的功能
//
//能完成下面函数的调用。
//print("s ccc d.\n","hello",'b','i','t',100);
//函数原型:
//print(char *format, ...)
//
#include<stdio.h>
#include<windows.h>
#include<stdarg.h>
#include<assert.h>
int print_num(int n)
{
while (n > 9)
{
print_num(n / 10);
}
putchar(n % 10 + '0');
}
int print(const char *format, ...)
{
assert(format);
va_list arg;
va_start(arg, format);
const char *p = format;
while (*p)
{
if (*p == '%')
{
p++;
switch (*p)
{
case'd':
print_num(va_arg(arg, int));
break;
case's':
{
char *start = (va_arg(arg, char *));
while (*start)
{
putchar(*start);
p++;
}
break;
}
case'c':
putchar(va_arg(arg, char));
break;
default:
break;
}
}
else
{
putchar(*p);
}
p++;
}
va_end(arg);
}
int main()
{
print("s ccc d.\n","hello",'b','i','t',100);
system("pause");
return 0;
}