je veux passer à travers une string (sans la modifier) pour extraire certaines infos
le code suivant compile:
par contre si j'indique que je passe une string constante dans la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool verifyString (string theString) { string::iterator start = theString.begin(); string::iterator end = theString.end(); while (start < end) {... start++ ...}
bool verifyString (const string theString) {...
le compilateur m'indique:
error: conversion from ‘std::basic_string<char>::const_iterator ... to non-scalar type ...
Donc le compilateur considère que j'essaie de modifier une constante en utilisant un iterator!
Pourquoi ?
Est-ce mieux de faire une copie?, d'utiliser une boucle avec un size_t: for (int i = 0; i < theString.length(); i++)...
ou de ne pas passer la string comme constante?
Partager