C语言:模拟实现printf函数

4.1.模拟实现printf函数,可完成下面的功能
能完成下面函数的调用。 
print("s ccc d.\n","hello",'b','i','t',100); 
函数原型: 
print(char *format, ...) 

代码如下:

#include 
#include 
#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;
}

 

你可能感兴趣的:(C语言:模拟实现printf函数)