[C++] Errore di segmentazione durante l'accesso ai caratteri di una stringa std ::


Answers

Question

Sono uno di quei nuovi ragazzi che hanno imparato Java prima, poi sono arrivati ​​al C ++ e molte cose sono strane. Sto provando ad accedere ai caratteri di un oggetto std :: string per riconoscere gli spazi (sì, voglio andare per la prima volta nel modo più duro, nessuna regex per ora), tuttavia sto ricevendo un errore di errore di segmentazione che posso t capire. L'errore viene lanciato su chiamata della funzione "getTokens ()", che chiama il metodo toTokenize.at () che è l'unico errore di segmentazione di lancio. Se qualcuno mi può indicare nel modo giusto, sarei davvero grato! Trova il mio codice qui sotto. Grazie!

#include <iostream>
#include <vector>
#include <string>

std::vector<std::string> getTokens(const std::string& toTokenize) {

    std::vector<std::string> result;

    for (int i=1; i<toTokenize.length(); i++) {
        std::cout << toTokenize.at(i);
    }

}


int main() {

    std::string s ("");

    do {

        std::cout << "\nPlease input a command: ";
        getline(std::cin, s);

        getTokens(s);

    }
    while (s != "exit");

    return 0;
}