⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpp1qww.cpp

📁 北京大学的一些acm代码。还有一些资料。
💻 CPP
字号:
int   myprint(const   char*   format,...)                                                   //必须是三个点号...
{
	char   str[1024]={0};
	int   i=0;
					va_list   list;                                                                               //typedef   char*   va_list,一个指向字符类型的指针
	va_start(list,format);                                               //把list设置为指向可变参数的第一个参数
	while   (*format   !=   '\0 ')
	{
	if   (*format   ==   '% ')
	{
	switch   (*(++format))
	{
	case   'd ':
	itoa(va_arg(list,int),(str+i),10);                         //原型:va_arg(va_list   list,type),返回list中类型为type的当前的参数,   并将list指向下一个参数(其原理是  
	i=strlen(str);                                                                                 //根据当前指针list+sizeof(type),从而实现指针指向下一个参数
	break;
	case   'c ':
	str[i++]=va_arg(list,char);                                   //va_arg宏参数:第一个为va_list类型,第二个为参数的数据类型
	break;
	case   's ':
																	strcat(str,va_arg(list,char*));                             //调用va_arg宏,返回当前参数,并且list指向下一个可变参数(如果有)
	break;
	}
	format++;
	continue;
	}
									str[i++]=*format;
	format++;
	}
	va_end(list);                                                         //重新设置list,把指针设置为NULL
					puts(str);
					return   (int)strlen(str);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -