C语言程序设计:简易版的printf函数实现

简易版的printf函数实现

功能说明

(1)使用putchar函数、va可变参完成printf函数基本功能的实现;
(2)函数说明:

实现对下列数据类型的输出,并返回成功输出打印的字符个数:

  • 整数(正负)的输出;
  • 字符串输出;
  • 浮点数(float、double)输出;
  • 字符输出;

函数实现

#include <stdio.h>
#include <stdarg.h>
#include <limits.h>
#include <inttypes.h>

int myprintf(const char *format, ...) {
   
   
    va_list args;
    va_start(args, format);
    
    int char_count = 0; // 记录写入的字符数量

    while (*format) {
   
   
        if (*format == '%') {
   
   
            format++;
            switch (*format) {
   
   
                case 'c': {
   
   
                    char c = va_arg(args, int);
                    putchar(c);
                    char_count++;
                    break;
                }
                case 'd': {
   
   
                    int d = va_arg(args, int);
                    if (d == INT32_MIN) {
   
   
                        putchar('-');
                        putchar('2');
                        d = 147483648; 
                        char_count += 2;
                    } else if (d < 0) {
   
   
                        putchar('-');
                        d = -d;
                        char_count++;
                    }
                    int divisor = 1;
                    while (d / divisor >= 10)
                        divisor *= 10;
                    while (divisor 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值