通过指针对字符串进行排序

时间:2014-04-02 15:10:32

标签: c

我正在修改我的编程概念,并通过指针程序

遇到了这个排序字符串

我收到以下错误: 数组下标不是整数。 这是我的代码:

                 #include <stdio.h>
                 #include <string.h> 
                 int main()
                {
                 char buffer[100];

                 char *p[10];
                 int n;

                 printf(" Input the number of strings");
                 scanf("%d \n",&n);

                 int i=0;
                 for(i=0;i<n;i++)
                 {
                 gets(buffer);
                 *p[i]=(char *)malloc(strlen[buffer]+1);
                  strcpy(*p[i],buffer);
                  }
                  char *temp;
                  for(i=0;i<n-1;i++)
                  {
                  if(strcmp(*p[i],*p[i+1])>0)
                  {
                  *temp=*p[i+1];
                  *p[i+1]=*p[i];
                  *p[i]=*temp;

                   }
         }

1 个答案:

答案 0 :(得分:2)

 *p[i]=(char *)malloc(strlen[buffer]+1);
                  strcpy(*p[i],buffer);

应该是

 p[i]=malloc(strlen(buffer)+1);
                  strcpy(p[i],buffer);

甚至更短(使用POSIX.1中定义的函数):

 p[i]=strdup(buffer);