比较两个字符串的大小(用数组a,b,如果a大于b,输出1;如果a小于b,输出-1;如果a等于b,输出0.)

先把两个字符串存储到数组a、b内,在比较大小。我是初学者,请高手指教!不要用到函数。
数组a,b长度不确定。

将a、b两个数组逐个相对应的字符进行比较,如果a的大于b的对应字符,直接输出1;如果a的小于b的对应字符,直接输出-1;如果相等则继续比较下一个字符,比较结果与上述相同,若比较到最后对应字符仍然相等,则输出0。
长度不确定的话,如果比较到较短的数组最后还是两个相同,则较长的数组最终大于较短的数组。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-08
比较用函数 strcmp。

char a[80],b[80];
printf("please enter string a:\n");
gets(a);
printf("please enter string b:\n");
gets(b);
if (strcmp(a,b)==0) printf("0");
else if (strcmp(a,b)>0) printf("1");
else printf("-1");本回答被提问者和网友采纳
第2个回答  2011-06-08
核心代码字符串长度可任意,下面a,b只是随便长度举例,只要不两字符串的首地址传给p,q即可
char a[]="alsdjfa";
char b[]=";asldjfaslfh";
char *p;
char *q;
int flag=3;
for(p=a,q=b;*p!='\0'&&*q!='\0';p++,q++){
if *p>*q{flag=1;break;}
else if *p==*q{flag=0;continue;}
else{flag=-1;break;}
}
if flag!=3{
printf("\n%d\n",flag);
}
esle if *p=='\0'{
printf("a is null\n");
}
else{printf("b is null\n");
}
第3个回答  2011-06-11
通过移位运算来判定整数的正负性。

#include <iostream>
using namespace std;

#define MAX(A,B) (((A)-(B))>>31 ? (B) : (A))

int main()
{
int a = 10, b = 100;
cout << MAX(a, b) << endl;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网