做题时常常s1.size()-s2.size()来计算两个字符串长度之差;如果size1<size2, 这样减是有问题的。
原因是size()返回值是unsigned long long int型,两个无符号数相减若小于0则结果将是一个很大的正数。
#include <iostream>
using namespace std;
int main()
{
string s1="abcd", s2="abc";
int len = s2.size() - s1.size();
cout <<"len = "<< len << endl;
cout << s2.size() - s1.size() << endl;//直接相减
unsigned long long int a = 4, b = 3;//等同于这个
cout << b - a << endl;
return 0;
}