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字符串问题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将导致堆栈溢出!听起来您可能需要学习如何使用调试器来逐步完成代码。有了一个好的调试器,您可以逐行执行程序,并查看它与预期的偏差。如果您要进行任何编程,这是一
#包括
#包括
空白填充_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);
}