Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
115 views
in Technique[技术] by (71.8m points)

Why do i have an out of range exception working with c++ strings

The code gets an exception of type out of range and i don't know why. It seems to work when i debug it, teh string is converted to what i want it to be. First time on stack overflow btw:)

#include <iostream>

using namespace std;

string s;
string alpha = "abcdefghijklmnopqrstuvwxyz";
string crypto(string& s);

int main()
{
    cin >> s;

    cout << crypto(s);

    return 0;
}

string crypto(string& s)
{

    size_t i = 0;
    while (i < s.length()) {
        for (size_t j = 0; j < alpha.length(); j++) {
            if (s.at(i) == alpha.at(j)) {
                s.at(i) = alpha.at(alpha.length() - 1 - j);
                ++i;
            }
        }
    }

    return s;
}
question from:https://stackoverflow.com/questions/65941971/why-do-i-have-an-out-of-range-exception-working-with-c-strings

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Think about the case: if s.length() < alpha.length().


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...