C語言:模擬實現printf函式
阿新 • • 發佈:2019-02-08
4.1.模擬實現printf函式,可完成下面的功能
能完成下面函式的呼叫。
print("s ccc d.\n","hello",'b','i','t',100);
函式原型:
print(char *format, ...)
程式碼如下:
#include <stdio.h> #include <stdlib.h> #include <stdarg.h> 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; }