C 2d字符串问题 #包括 #包括 空白填充_A(字符A[][10],int*pos1,int*pos2) { int j,k,l; 而(j=0) { k=0; 做{ printf(“继续输入并在结束时终止”); 获取(A[k]);k++;}while(s

C 2d字符串问题 #包括 #包括 空白填充_A(字符A[][10],int*pos1,int*pos2) { int j,k,l; 而(j=0) { k=0; 做{ printf(“继续输入并在结束时终止”); 获取(A[k]);k++;}while(s,c,C,C 2d字符串问题 #包括 #包括 空白填充_A(字符A[][10],int*pos1,int*pos2) { int j,k,l; 而(j=0) { k=0; 做{ printf(“继续输入并在结束时终止”); 获取(A[k]);k++;}while(strcmp(A[k-1],“end”)!=0); *pos2=k-1; 对于(l=0;l将导致堆栈溢出!听起来您可能需要学习如何使用调试器来逐步完成代码。有了一个好的调试器,您可以逐行执行程序,并查看它与预期的偏差。如果您要进行任何编程,这是一

C 2d字符串问题
#包括
#包括
空白填充_A(字符A[][10],int*pos1,int*pos2)
{
int j,k,l;
而(j=0)
{
k=0;
做{
printf(“继续输入并在结束时终止”);
获取(A[k]);k++;}while(strcmp(A[k-1],“end”)!=0);
*pos2=k-1;

对于(l=0;l将导致堆栈溢出!听起来您可能需要学习如何使用调试器来逐步完成代码。有了一个好的调试器,您可以逐行执行程序,并查看它与预期的偏差。如果您要进行任何编程,这是一个必不可少的工具。进一步阅读:.get(a[k]);不是合适的输入函数,此处未正确使用。
while(j=0)
应为
j=0;while(j==0)
#include<stdio.h>



#include<string.h>
     void fill_A (char A[][10],int *pos1,int *pos2)

   {
     int j,k,l;
     while (j=0)
     {
          k=0;
          do{
               printf("keep entering and terminate by end");
               gets(A[k]); k++;}while(strcmp(A[k-1],"end")!=0);
               *pos2=k-1;
          for(l=0;l<k;l++)
          {
               if (strcmp(A[l],"middle")==0)
               {
                    j=1; *pos1=l; break; }
          }
     }
}     

void fill_B(char A[][10],char B[][10],int pos1)
{
     int j,k;
     for(j=0;j<pos1;j++)
     {
          strcpy(B[j],A[j]);
     }
}

void fill_C(char A[][10],char C[][10],int pos1,int pos2)
{
     int j;
     for (j=pos1;j<pos2;j++)
     {
          strcpy(C[j],A[j]);
     }
}

void print (char A[][10],int lim)
{
     int j;
     for (j=0;j<lim;j++)
     {
          puts(A[j]);
     }
}

void main()
{
     char A[100][10],B[100][10],C[100][10];
     int pos1,pos2;
     fill_A(A,&pos1,&pos2);
     fill_B(A,B,pos1);
     fill_C(A,C,pos1,pos2);
     print (B,pos1);
     print(C,pos2-pos1);
}