回复 楼主 吕宏
我就想要这个样的,然而不会做
求个思路
#include <stdio.h> #include <string.h> #include <windows.h> //这个头文件暂时没用,不用管,准备最后实在不好消除回车,先用fflush(stdin);调试下用的,这个动作不太好,最好不用 #define M 30 #define N 30 int main() { int i=0,j=0,k=0,m=M,n=0; char arr[M][N]; char (*p)[M]; int num[N]={0} //统计每行字符串的长度 p=arr; 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]); for(j=0;j<N;j++) { if(*(p[i]+j)='\n') { num[i]=j+1; //统计每行字符串的长度 break; } getchar(); } printf("第%d行字符串:",i+1); puts(p[i]); } // fflush(stdin); //进行n-1次连接 for(i=0;i<n;i++) { for(j=num[i];j<N;j++) { k=0; *(p[k]+j+i)=*(p[k+i]+k); k++; } } puts(p[0]); return 0; }
[此贴子已经被作者于2016-5-17 10:43编辑过]
#include <stdio.h> #include <string.h> #include <windows.h> #define M 30 #define N 30 int main() { int i=0,j=0,k=0,m=M,n=0; char arr[M][N]; char (*p)[M]; int num[N]={0},sum=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]); //判断每行字符串的长度 /* for(j=0;j<N;j++) { if(*(p[i]+j)='\0') { num[i]=j+1; //统计每行字符串的长度 break; } } */ num[i]=strlen(p[i]); printf("长度%d的第%d行字符串:",num[i],i+1); puts(p[i]); } //进行n-1次连接 /* for(i=0;i<n;i++) { for(j=num[i];j<N;j++) { k=0; *(p[k]+j+i)=*(p[k+i]+k); k++; } } */ for(i=0;i<n;i++) { strcat(p[i],p[i+1]); strcat(p[i],p[i+2]); } //统计连接后字符串总长度 // for(k=0;k<n;k++) // sum+=num[k]; //输出连接后的字符串 puts(p[0]); printf("非0再次运行,0退出"); scanf(" %d",&_exit); }while(_exit!=0); return 0; }
[此贴子已经被作者于2016-5-17 11:10编辑过]