模拟实现printf

来源:互联网 发布:光大证券金阳光mac版 编辑:程序博客网 时间:2024/06/04 18:55
#include<stdio.h>#include<stdarg.h>void display(int tmp){ if(tmp > 9){display(tmp / 10);}putchar(tmp % 10 + '0');}void print(const char *format, ...){va_list arg;va_start(arg, format);while ((*format) != '\0'){switch (*format){case 'c':{char tm = va_arg(arg, char);putchar(tm);break;}case 's':{char* tmp = va_arg(arg, char*);while ((*tmp) != '\0'){putchar(*tmp);tmp++;}}break;case 'd':{int tmp = va_arg(arg, int);display(tmp);break;}default:{putchar(*format);}}format++;}}int main(){print("s ccc d.\n", "hello", 'b', 'i', 't',100);getchar();return 0;}