编写一个这样的函数,即将可变数目的字符串作为参数、依次将这些字符串拼接成一个更长的字符串、并返回一个指向拼接成的字符串的指针。
代码如下:
#include <stdio.h>
#include <stdlib.h>
char* fun(char* p1,char* p2)
{
char* p,*s;
int len1=0,len2=0,i;
s = p1;
while(*s)
len1++;
s = p2;
while(*s)
len2++;
p = (char*)malloc(len1+len2+1);
i = 0;
while(i < len1)
{
p[i] = p1[i];
i++;
}
i = 0;
while(i<len2)
{
p[len1+i] = p2[i];
i++;
}
p[len1+len2] = '\0';
return p;
}
int main()
{
char buf1[100]={0};
char buf2[100]={0};
char *p = 0;
printf("请输入字符串1:");
gets(buf1);
printf("请输入字符串2:");
gets(buf2);
p = fun(buf1,buf2);
if(p)
printf("拼接后的字符串:%s\n",p);
free(p);
return 0;
}
定义一个字符串链表,以便支持任意大小,然后将字符串内容合并到一个大字符串中
简单点的话, 就申请一个较大的静态空间,顺序结构存储字符串