永发信息网

c++使用指针将字符串进行排序,使用自定义的比较函数。。我想知道我哪里除了小错误?

答案:3  悬赏:50  手机版
解决时间 2021-04-10 12:16
#include
using namespace std;
int main()
{
short strcmp2(char *c1,char *c2);
char *ch[4] = {"Africa","Asia","America","Europe"};
char **p = ch;
char **_end = (ch+3); char **_end_1 = (ch+2);
char **p1;
char **p2;
char *temp;
char **t = p;
for(p1 = p;p1<=_end_1;p1++){
t = p1;
for(p2 = (p1+1);p2<=_end;p2++){
if(strcmp2(*t,*p2)==1) t = p2;
}
temp = *p1; *p1 = *t; *t = temp;
}
for(p1 = p;p1<=_end;p1++){
cout<<*p1< }
return 0;
}
short strcmp2(char *c1,char *c2){
short b = 0;
for(;(*c1 != '\0')&&(*c2 != '\0');c1++,c2++)
{
if(*c1>*c2) b = 1;
else if (*c1<*c2) b = -1;break;
}
return b;
}

现在的输出,没有很好的排序。。我想知道哪里错了。。为什么错了
最佳答案
把函数
short strcmp2(char *c1,char *c2){
short b = 0;
for(;(*c1 != '\0')&&(*c2 != '\0');c1++,c2++){
if(*c1>*c2) b = 1;
else if (*c1<*c2) b = -1;break;
}
return b;
}
改成
short strcmp2(char *c1,char *c2){
short b = 0;
for(;(*c1 != '\0')&&(*c2 != '\0');c1++,c2++){
if(*c1>*c2){
b = 1;
break;
}
else if (*c1<*c2){
b = -1;
break;
}
}
return b;
}
原因你自己对照看吧!可续问。
全部回答
自定义函数时字符串的格式:char *function(); char *function(char ch[]) { return ch; } main { char c[]={"abcdefg"}; printf("%s",function(c)); }
for(;(*c1 != '\0')&&(*c2 != '\0');c1++,c2++) 这个地方100%报错
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
腾讯怎么赚钱,腾讯游戏天天德州500多万金币号
大地黑牛地址在什么地方,想过去办事
苹果手机百度打不开了怎么回事
性格是指A.直接影响活动效率,使活动得以顺利
新约全书英文名是
小学生的优美语句,小学生好句摘抄大全30字左
猫猫吃什么便便不那么臭
How often do you sit still and do absolute
财税 2012 38号在哪里下载
在下列化合物:属于环状化合物的是______,属
赤峰秋实教育辅导学校地址在什么地方,想过去
左边一个金字(注意不是金字旁,是金),右边
C There are 5 channels on British televisi
哥俩好胶弄在运动裤上面了?如何弄掉?刚买的
反义词语 称赞 办法 动听
推荐资讯
清水浦站自行车租赁点地址在哪,我要去那里办
谁能告诉我摩托车牌照可以从邮局寄快递吗?
有600毫升的苹果汁,可以平均分成若干杯.请
多囊肾多囊肾,害死人的病啊,怎么就没人研发
如何将手机内存卡格式化
不到一个月的OPPOR9s内屏碎了 去售后保修吗?
目前,租赁消费方式正进入我国一些百姓家庭。
大家认为国内哪家银行比较好?
单选题Weshouldtrytohelpthetwoorphans__
辩组词语有哪些,股的组词有哪些词语
将成熟的新鲜的蘑菇放在白纸上,轻轻敲落一下
单选题一盏“36V60W”的灯接到某电路上,通过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?