请注意你在访问字符串时的边界, 即:
错误:
for(int j=0; j<=s.length()-3; j++){ if(s.substr(j, 3) == "sos"){ a[i]++; } }
正确:
int len = s.length(); for(int j=0; j<=len-3; j++){ if(s.substr(j, 3) == "sos"){ a[i]++; } }