注册 登录
编程论坛 C++教室

一个很费解的小程序

夜幕 发布于 2009-12-19 21:11, 1410 次点击
我刚刚学习C++,学到字符串变量时就练了一个小程序,可结果很让我费解。
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string str1,str2,str3;
    int a;
    str1="China";
    str2="America";
    str3="Italy";
    if(str1<str2)
        a=1;
    else
        a=0;
    cout<<"a="<<a<<endl;
    return 0;
}
理论上结果因该是a=1,可运行的结果却是a=0,不知道谁能解释一下下。
11 回复
#2
lintaoyn2009-12-19 21:35
因为'C'>'A'。
巨汗

[ 本帖最后由 lintaoyn 于 2009-12-20 10:27 编辑 ]
#3
flyingcloude2009-12-19 22:44
不知你理论结果是怎么得到的

#4
pangding2009-12-20 09:51
呵呵,就是~~
#5
ruinw2009-12-20 10:19
比较第一个字符 一样再比较下一个。 嘻嘻
#6
lklqlk19912009-12-20 16:32
这样也行  I服了You
#7
无水之冰2009-12-20 22:44
楼主的本意可能是想按长度来比较的吧,这样做是不行的,这个是一个字符一个字符的进行比较。
#8
lyl66504212009-12-22 17:33
那你定义那个Str3就没有意义了,应该还有的吧!
比较的不是字节长度,是每个字母来比较的,‘C’与‘A’比较,如果两个相同在如这个方法一直比较到不相同为止!
#9
az98416822009-12-22 19:58
按 ASII码的无符号 比较吗
#10
shenyulv2009-12-23 00:12
路过。。
#11
shiyuehai2009-12-23 09:11
‘C’的ASII码比‘A’大,所以a=0
#12
fydgo2009-12-23 10:36
他是一个一个比较的,线比较第一个字符,‘A’<'c'(比较ASCII码值),所以结果是0
如果第一个字符相等就比较第二个字符,以此类推。。。
1