如题所述
第1个回答 2019-07-08
while(s1[i]&&s2[i]&&s1[i]==s2[i])
i++;这句话的主要目的是找出字符串s1和s2第一个不相同的字符的位置,当然为了防止s1是s2的子串或者s2是s1的子串(处理边界问题,防止死循环)另外加了两个条件s1[i]&&s2[i],也就是当其中有一个已经结束时,循环也暂停。然后记录下停下来的位置i,用字符串s1[i]的字符减去s2[i]的字符。整个函数就是判断两个字符串的大小,和strcmp功能一样。
i++;这句话的主要目的是找出字符串s1和s2第一个不相同的字符的位置,当然为了防止s1是s2的子串或者s2是s1的子串(处理边界问题,防止死循环)另外加了两个条件s1[i]&&s2[i],也就是当其中有一个已经结束时,循环也暂停。然后记录下停下来的位置i,用字符串s1[i]的字符减去s2[i]的字符。整个函数就是判断两个字符串的大小,和strcmp功能一样。