stringa.trova(“ ”) non è di trovare gli spazi

Sto cercando di trovare spazio in una stringa di un input dell’utente. Voglio usare find() da std::string per restituire la posizione dello spazio.

Se l’input è “Seattle, WA USA”, e voglio find(" ", 0) per tornare 8, come posso fare questo? L ‘ 8 è lo spazio dopo “,”

string inputString = " ";
cout << "Enter String to modify" << endl;
cin >> inputString;
int spac = inputString.find(" " , 0);

Ma find() è continuare a tornare 0.
Io non sono sicuro del perché.

Nota che 0 significa carattere e non indica una mancanza di: std::string::npos indica non trovato.

OriginaleL’autore SndLt | 2013-03-18

2 Replies
  1. 8

    Non stai leggendo, lo spazio (cin >> inputString si ferma in spazi…).

    Utilizzare std::getline(std::cin, inputString) invece.

    Grazie a voi, e che cosa è questo “getline”?
    consultare la pagina di riferimento: en.cppreference.com/w/cpp/string/basic_string/getline
    Non importa, è il lavoro. Grazie.

    OriginaleL’autore sehe

  2. 0

    È a causa di cin che tronca le parole dopo il primo spazio e di memorizzarli inputString:

    string inputString;
    
    getline(cin, inputString);
    
    int spac = inputString.find(" " , 0);
    
    cout << spac << endl;

    OriginaleL’autore deepmax

Lascia un commento