我有以下代码:
int compare(string a,string b)
{
int length=a.length();
for(int i=0; i < length; i++)
{
if(a[i]<b[i])
return 1;
if(a[i]>b[i])
return 0;
}
....
}
在字符串a的长度大于字符串b的长度并且字符串a以字符串b开头的情况下,我很有趣。
示例:
字符串a =“ abcdefghi”
字符串b =“ abcde”
该函数将返回0。我想知道此函数是否有返回1的机会;在这种情况下。
答案 0 :(得分:2)
共有两种情况:-
如果我们有b > 0
的长度,那么我们必须确保
a[i] ASCI
I值必须小于b[i]
ASCII值。
string a="abcdefghi"
string b="abcde"
在您的示例中,当我们到达索引5
时,结果将是
未定义,表示b[5]
可能包含其 ASCII 的垃圾值
值大于a[i
]。否则结果可能相反。