首页 > 其他 > 详细

C和指针第七章第五题

时间:2014-07-08 11:47:43      阅读:383      评论:0      收藏:0      [点我收藏+]

实现一个简化的printf函数,能够处理%d,%f,%s,%c等格式。

 

/*************************************************************************
    > File Name: permutation.c
    > Created Time: 2014年06月17日 星期二 23时22分34秒
 ************************************************************************/

#include<stdio.h>
#include<stdarg.h>
#include<stdlib.h>

//输出普通的字符串
int printStr(char const *str)
{
    int len = 0;
    while(*str != \0)
    {
        putchar(*str++);
        len++;
    }
    return len;
}

//说明,一个简化的printf函数,这个函数是能够%d,%c,%f,%s等格式。其他格式均是未定义的。
int MyPrintf(char const *format,...)
{
    int len = 0;
    int sublen;
    va_list vlist;
    va_start(vlist,format);//获取第一个参数首地址

    while(*format != \0)
    {
        char data[50];
        int sublen = 1;
        if(*format++ == %)
        {
            if(*format == d)
            {
                int d = va_arg(vlist,int);
                char dd[10];
                itoa(d,dd,10);
                sublen = printStr(dd);
            }else if(*format == c)
            {
                char c = va_arg(vlist,char);
                putchar(c);
                sublen = 1;
            }else if(*format == s)
            {
                char *str = va_arg(vlist,char *);
                sublen = printStr(str);

            }else if(*format == f)
            {
                double d = va_arg(vlist,double);
                char dd[20];
                gcvt(d,10,dd);
                sublen = printStr(dd);
            }
            format++;
            printf("\n"); 
        }
        
        len += sublen;
    }
    va_end(vlist);
    return len;
}

int main()
{
    int num = MyPrintf("%d %c %s %f",4,A,"1213",3.14);
    printf("输出字符的长度(空格,回车符除外):%d\n",num);
    return 0;
}

 

C和指针第七章第五题,布布扣,bubuko.com

C和指针第七章第五题

原文:http://www.cnblogs.com/newpanderking/p/3830788.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!