可变参数列表模拟printf
时间: 2023-09-22 09:04:57 浏览: 83
C语言可变参数_va_list和_vsnprintf及printf实现.
4星 · 用户满意度95%
你可以使用C语言中的可变参数列表来模拟printf函数。可变参数列表允许函数接受不定数量的参数。
下面是一个示例代码,演示如何使用可变参数列表模拟printf函数:
```c
#include <stdio.h>
#include <stdarg.h>
void my_printf(const char* format, ...)
{
va_list args;
va_start(args, format);
// 遍历可变参数列表
for (const char* p = format; *p != '\0'; ++p)
{
if (*p == '%')
{
++p;
switch (*p)
{
case 'd':
printf("%d", va_arg(args, int));
break;
case 'f':
printf("%f", va_arg(args, double));
break;
case 's':
printf("%s", va_arg(args, const char*));
break;
default:
putchar(*p);
break;
}
}
else
{
putchar(*p);
}
}
va_end(args);
}
int main()
{
my_printf("Hello, %s! The answer is %d. The value of pi is %f.\n", "world", 42, 3.14159);
return 0;
}
```
在上面的示例中,`my_printf`函数使用了可变参数列表来接受格式化字符串和对应的参数。通过遍历格式化字符串,我们可以根据格式化符号来获取正确的参数,
阅读全文