首页 > 用户发贴区 > 编程问题提问区 > C动态字符串输入问题
2009
08-08

C动态字符串输入问题

#include “stdio.h”
int dyn(p3,rows,cols)/*动态输入字符串数组*/
  int rows,cols;   
  char ***p3;
{
  char **x;
  int i;
  x=(char**)malloc(rows*sizeof(char*));
  for(i=0;i<rows;i++)
      x[i]=(char*)malloc(cols*sizeof(char));
  *p3=x;
}
main()      
{
 int r,c,i;
 char **s2;
  printf(“\ninput rows:\n”);
  scanf(“%d”,&r);
  printf(“input cols:\n”);
  scanf(“%d”,&c);
  printf(“\n**************************\n”);
  dyn(&s2,r,c);
  for(i=0;i<r;i++)gets(s2[i]);/*为什么只能输入比r-1行的字符*/
  printf(“\n**************************\n”);
  shellsort(s2,r);
}
shellsort(v,n)/*比较排序*/
  char *v[];
  int n;
{
 char *t;
  int i,j;
  for(i=0;i<n-2;i++)
      for(j=n-1;j>i;j–)
          if(strcmp(v[j-1],v[j])>0)
            {t=v[j];
             v[j]=v[j-1];
             v[j-1]=t;
            }
  for(i=0;i<n;i++)
       puts(v[i]);
     }


 


*为什么只能输入比r-1行的字符*/
TKS!




C动态字符串输入问题》有 3 条评论

  1. mmbc 说:

     for(i=0;i<r;i++)gets(s2[i]);/*为什么只能输入比r-1行的字符*/

    改为

    getchar();

    for(i=0;i<r;i++)

    {

    gets(s2[i]);

    }

    因前一句scanf(“%d”,&c);留下一个’\n’在内存里

  2. mmbc 说:

    或者

    for(i=0;i<r;i++)gets(s2[i]);/*为什么只能输入比r-1行的字符*/

    for(i=0;i<r;i++)scanf(“%s”,s2[i]);/*为什么只能输入比r-1行的字符*/

  3. linder 说:

    程序有问题

     

留下一个回复