我正在修改我的编程概念,并通过指针程序
遇到了这个排序字符串我收到以下错误: 数组下标不是整数。 这是我的代码:
#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;
}
}
答案 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);