【C语言】用可变参数列表实现printf函数

//用可变参数列表实现printf函数
#include <stdio.h>
#include <stdarg.h>
void my_printf(const char *str,...)
{
	va_list fun;
	va_start (fun,str);
	while(*str!=0)
	{
		if(*str=='c')
		{
			putchar(va_arg(fun,char ));
		}
		if(*str=='s')
		{
			puts(va_arg(fun,char *));
		}
		str++;
	}
	va_end(fun);
}

int main ()
{
	my_printf("ccss",'a','j',"sas","awdaf");
	return 0;
}

时间: 2024-11-09 06:27:24

【C语言】用可变参数列表实现printf函数的相关文章

c语言 使用可变参数列表实现printf(my_printf)

//使用可变参数列表实现print("s\t c\n","bit-tech",'w'); #include<stdio.h> #include<stdarg.h> void int_to_char(int num) { if ((num / 10) > 0) int_to_char(num / 10); putchar(num %10+ 48); } void my_print(char p[],...) { char *str1 = 

可变参数列表实现printf函数

模拟实现printf函数,可以在屏幕上输出my_printf("sccccc\n","hello",'w','o','r','l','d'); #include<stdio.h> #include<stdlib.h> #include<stdarg.h> int my_printf(char *word, ...) { va_list arg; va_start(arg, word); while (*word) { switch

【C语言】可变参数列表。

(1)先看一个求平均值的函数 #include <stdio.h> double average(int val,int v1,int v2,int v3,int v4,int v5) { double sum = v1; if(val >= 2) sum += v2; if(val >= 3) sum += v3; if(val >= 4) sum += v4; if(val >= 5) sum += v5; return sum/val; } int main ()

(C语言)可变参数列表

C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va_list:用来保存宏va_start.va_arg和va_end所需信息的一种类型.为了访问变长参数列表中的参数,必须声明 va_list类型的一个对象       定义: typedef char *  va_list; va

可变参数列表的实现--平均值

<pre name="code" class="cpp"><span style="font-size:24px;">c语言中用可变参数列表的原因</span> <span style="font-size:18px;">cpp文件中参数可以初始化,则实参中用几个参数写几个,但是c中形参不可以初始化,所以引出可变参数列表,头文件为stdarg.h,使用宏stdarg va_lis

【C语言】printf函数的简单实现(可变参数列表)

stdarg宏: 可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件中,它是标准库的一部分.这个头文件声明一个类型va_list和三个宏va_start.va_arg和va_end.我们可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数. 声明一个va_list类型的变量arg,它用于访问参数列表的未确定部分.这个变量是调用va_start来初始化的.它的第一个参数是va_list的变量名,第2个参数是省略号前最后一个有名字的参数.初始化过程把var_arg变量设

C语言函数可变参数列表

C语言允许使用可变参数列表,我们常用的printf函数即为可变参数函数,C标准库提供了stdarg.h为我们提供了这方面支持:该头文件提供了一些类型和宏来支持可变参数列表,包括类型va_list,宏va_start.va_arg.va_end: 可变函数参数定义方法: #include <stdarg.h> void func(int count,...){ va_list ap; int ix, tmp; va_start(ap, a); for(ix=0;ix < count; ++

c语言中对可变参数列表的简单理解

函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头文件中声明了一个va_list类型和va_start.va_arg.va_end三个宏.我们使用可变参数列表的时候需要声明一个va_list类型的变量配合这三个宏使用. va_start(va_list变量名,省略号前面最后一个有名字的参数):在提取可变参数前必须调用这个宏实现初始化. va_arg

【C语言】求多个数中的最大值(可变参数列表)

求多个数中的最大值要求用可变参数列表: 代码如下: <span style="font-size:18px;">#include<stdio.h> #include<stdarg.h> int Max(int n,...) { int i=0; int max=0; va_list arg; va_start(arg,n); for(i=0;i<n;i++) { int val=va_arg(arg,int); if (val>max)