我是C的新手,但我仍然没有真正的指针。有人能帮帮我吗。我必须创建一个具有可变参数(字符串(的函数,该函数输出字符串并对其进行计数。
#include <stdio.h>
void PrintAndCount(const char* s, ...)
{
char **p = &s;
while(*p != NULL)
{
printf("%sn", *p);
(*p)++;
}
}
int main()
{
char s1[] = "It was a bright cold day in April.";
char s2[] = "The hallway smelt of boiled cabbage and old rag mats. ";
char s3[] = "It was no use trying the lift.";
PrintAndCount(s1, s2, s3, NULL);
return 0;
}
不能直接遍历一组变量参数,因为如何将它们传递给函数是高度特定于实现的。
相反,使用va_list
对它们进行迭代。
#include <stdarg.h>
void PrintAndCount(const char* s, ...)
{
va_list args;
va_start(args, s);
printf("%sn", s);
char *p = va_arg(args, char *);
while(p != NULL)
{
printf("%sn", p);
p = va_arg(args, char *);
}
va_end(args);
}