这个满足你的要求了,你试试
程序代码:
程序代码:#include <stdio.h>
#include <string.h>
#define M 30
#define N 30
//自定义计算每行字符串长度的函数
int strlength(const char *str)
{
return (0 == *str) ? 0 : (1 + strlength(str + 1));
}
//自定义字符串连接的函数
void strlink(char *str1,char *str2)
{
while(*str1!=0)
str1++;//将str1指向末尾的 \0 ,该位置正好是str2第一个字符要放置的位置
while(*str2!=0)
{
*str1=*str2; //str2还没到末尾时依次连接每个字符
str1++; //移动两个指针准备处理下个字符
str2++;
}
*str1=0; //为str1手工置结束符 \0
}
int main()
{
int i=0,m=M,n=0;
char arr[M][N];
char (*p)[M];
// int num[N]={0}; //统计字符串的长度
p=arr;
int _exit=0;
do{
system("cls");
printf("请输入要输入字符串的行数,该数字要小于%d:",m);
do{
scanf("%d",&n);
}while(n>M);
getchar(); //吸收回车
//下面是输入和输出每行字符串,可以将输出字符串部分注释掉
for(i=0;i<n;i++)
{
// printf("请输入第%d行字符串:\n",i+1);
gets(p[i]);
//调用自定义函数统计字符串长度,这段也可以注释掉
// num[i]=strlength(p[i]);
// printf("长度%d的第%d行字符串:",num[i],i+1);
// puts(p[i]);
}
//调用自定义连接函数,进行字符串连接
for(i=1;i<n;i++)
{
strlink(p[0],p[0+i]);
}
//输出连接后字符串
puts(p[0]);
printf("非0再次运行,0退出\n");
scanf(" %d",&_exit);
}while(_exit!=0);
return 0;
}
[此贴子已经被作者于2016-5-17 12:40编辑过]








