标题:一个对字符串排序的问题
只看楼主
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
结帖率:100%
 问题点数:0 回复次数:4 
一个对字符串排序的问题
我编写了一个对字符串排序的函数:
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 
2006-06-04 21:12
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
得分:0 
这可是用二维数组处理字符串的问题,不要用指针数组处理,那样太简单了

2006-06-04 21:26
zhss5
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-12-22
得分:0 

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);
}
}

2006-06-04 21:56
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
得分:0 
我用3楼的方法运行了一编,嘿真对了,3楼真了不起,高手啊

2006-06-04 22:06
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
sort Sort

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

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



叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-06-04 22:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-69763-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050921 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved