当前位置: 代码迷 >> C语言 >> 一个对字符串排序的问题
  详细解决方案

一个对字符串排序的问题

热度:130   发布时间:2006-06-04 21:12:00.0
一个对字符串排序的问题
我编写了一个对字符串排序的函数:
main()
{ void sort(char (*p)[ ] );
int i ;
char str[10][10] ;
printf("enter array:");
for(i=0;i<10;i++)
scanf("%s",str[i]);
printf("string is:");
for(i=0;i<10;i++)
{printf("%s",str[i]);
printf("\n");
}
printf("string sort :");
sort(str);
for(i=0;i<10;i++)
{printf("%s",str[i]) ;
printf("\n") ;
}
}
void sort(char (*p)[10])
{int i, j ;
char temp[10];
for(i=0;i<9;i++)
for(j=i;j<9-i;j++)
{if(strcmp((p+i),(p+j+1))>0)
{strcpy(temp,(p+i));
strcpy((p+i),(p+j+1));
strcpy((p+j+1),temp);
}
}
}
可是运行此函数时能够运行但是不能得到正确的结果,不知哪里出了错误。请高手指点……
在此谢谢了!
搜索更多相关的解决方案: 字符  sort  void  main  

----------------解决方案--------------------------------------------------------
这可是用二维数组处理字符串的问题,不要用指针数组处理,那样太简单了
----------------解决方案--------------------------------------------------------

for(i=0;i<9;i++)
for(j=i;j<9;j++)
{if(strcmp((p+i),(p+j+1))>0)
{strcpy(temp,(p+i));
strcpy((p+i),(p+j+1));
strcpy((p+j+1),temp);
}
}


----------------解决方案--------------------------------------------------------
我用3楼的方法运行了一编,嘿真对了,3楼真了不起,高手啊
----------------解决方案--------------------------------------------------------
sort Sort

printf("%s",str[i]);printf("\n");
→printf("%s\n",str[i]);

排序部分改变下指针就可以了,不需要复制串



----------------解决方案--------------------------------------------------------

  相关解决方案