c++ - C ++比较2个字符串
问题描述
我有以下代码:
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 开头时,我很感兴趣。
示例:
string a="abcdefghi"
string b="abcde"
该函数将返回 0。我想知道该函数是否有机会返回 1;在这种情况下。
解决方案
总共可能有两种情况:-
如果我们的长度为
b > 0
,那么我们必须确保a[i] ASCI
I 值必须小于b[i]
ASCII 值。string a="abcdefghi" string b="abcde"
在您的示例中,当我们到达 index
5
时,结果将是未定义的,意味着可能包含其ASCII 值大于]b[5]
的垃圾值。或者结果可能适得其反。a[i
推荐阅读
- amazon-web-services - SQS lambda 集成- Lambda 没有收到任何消息
- r - Repeat a vector on a dataframe
- python-3.x - 为什么熊猫 read_csv() 在 jupyter 上返回 SSL: CERTIFICATE_VERIFY_FAILED?
- c# - 同时收集nameof和object
- sql - 创建选择嵌套子查询以计算一列中的不同项目
- javascript - 在Javascript中将子类存储为变量
- c# - System.Linq:以下方法或属性之间的调用不明确
- django - 为什么这个需要的文件夹变成了一个子模块?
- javascript - javascript中的递归以使用具有单个父元素的子元素构建HTML
- dynamic-data - DynamicData 和 ReactiveUI 上的自动刷新