这段代码如何显示此输出?

时间:2017-08-08 08:30:49

标签: c++ string

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    cin >> s;
    cout << s.length() << " ";
    int l = s.length();
    int i = l;
    while (s[i] >= 0)
    {
        i--;
    }
    cout << i;
    return 0;
}

当我输入10101时,输出为:

5 -12

指数怎么这么低?

1 个答案:

答案 0 :(得分:1)

As&#34; i&#34;递减它将超出字符串的范围。然后它访问不确定的内存值。其中一些恰好大于或等于0.