天天看點

C語言實作printf()函數功能,C語言:模拟實作printf函數

#include void show(int num)

{

if (num > 9)

{

show(num / 10);

}

putchar(num % 10 + '0');

}

void print(char*format,... )

{

va_list arg;

va_start(arg, format);

while (*format)

{

switch (*format)

{

case 's':

//字元串

{

char *ret = va_arg(arg, char*);

//puts(ret);

while (*ret)//循環列印字元

{

putchar(*ret);

ret++;

}

}

break;

case 'd':

//整形

{

int ret = va_arg(arg, int);

show(ret);//按字元列印

}

break;

case 'c':

//字元

putchar(va_arg(arg, char));

break;

default:

putchar(*format);

break;

}

format++;

}

}

int main()

{

print("d s c\n", 100, "bit", 'q');

system("pause");

return 0;

}