c语言经典面试题

来源:百度知道 编辑:UC知道 时间:2024/07/02 13:18:52
实现一个函数strprintf(int n,char *s1){}
n代表参数*s1的个数,*s1为指向字符串的指针。
函数输出*s1字符串。
比如:strprintf(1,"hello") 输出结果为hello.
strprintf (3,"this","is","a dog") 输出结果为this is a dog.

提示:考虑系统编译,用指针实现!
我想了半天都觉得题目不对,是考的c语言,怎么会有重载了呢?

这个叫可变参数,不是重载,C语言支持的,我就不用粘贴了,这个页面说得很详细,你也可以在百度搜索更多:

http://dev.csdn.net/article/56/56717.shtm

CString SaveLog(char *fmt ,...)
{
va_list marker;
va_start( marker, fmt );
char buf[1024] = {0};
vsprintf(buf,fmt,marker);
va_end( marker );

CString sLog;
sLog.Format("%s\n", tNow.Format("[%Y-%m-%d %H:%M:%S]"), buf);
return sLog;
}
调用:SaveLog( "%s %s %s.[%s]", strFileName, sFound, strVirus, sKilledEng);

给你个例子吧。
不过这个例子是VC的,不知道C下面能不能跑

请上网查阅"C语言不定参数函数"有关知识