一个作业,思考了好久,有点想法,但实现起来有点困难,求大神看看
/*编写一个函数,接受可变数目的字符串作为参数,按顺序拼接这些字符串成为一个更长的字符串,并返回一个指向新字符串的指针。*/
我理解为:
1:程序接收用户输入的字符串,且输入的字符串的个数可变;
2:把数目可变的字符串作为参数,传递给另一个函数;
3:另一个函数对字符串进行排序
4:另一个函数对经排序的字符串进行拼接,并返回指向新字符串的指针。
#include <stdio.h>
#include <string.h> //程序是我的一些想法,但是具体不知道怎么操作,
#include <stdarg.h> //若是想法正确,求大神给出具体的内容。
//若想法错误,求大神给出具体的坚决方法
#define MAX 10
char *har(int num,...);
int main(void)
{
char *buf[MAX],*new;
int count,n;
for(count=0;count<MAX;count++)
{
buf[count]=(char *)malloc(sizeof(buf[count]+1));
printf("Enter a line of text,enter a bland line to break.")
gets(buf[count]);
if(strlen(buf[count])==0)
{
n=count+1;
break;
}
}
if(count==MAX)
n=MAX;
new=har(n,不确定n的值可变参数列表怎么写);
printf("\n%s",new);
return 0;
}
char *har(int num,...)
{
va_list arg_ptr;
char new[90];
int count;
va_start(arg_ptr,num);
for(count=0;count<num;count++)
{
进行排序。。。
}
for(count=0;count<num;count++)
{
进行拼接。。。
}
new[90]=新字符串;
va_end(arg_ptr);
return new;
}