Bonjour tout le monde,
j'ai un code qui fonctionne qui ressemble à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
long strToLong(string str, int base) {
    char * p;
    long var_strToLong = strtol(str.c_str(), &p, base);
 
    if(*p != '\0'){
        var_strToLong = 0;
    }
 
    return var_strToLong;
}
On passe à cette valeur une chaine de caractère (str) et la fonction convertit cette chaine en long. Jusqu'ici pas de soucis.

Mais on me précise que :

Cette fonction prend un argument de type chaîne de caractères, sachant qu'on doit pouvoir lui passer, indifféremment, un litéral chaîne (ex. "hello"), un argument de la ligne de commande (type : char const *) ou une variable de type std::string.
Pour cela, à vous de trouver le bon type pour l'argument.

Aucun des arguments n'est censé être modifié par la fonction. Aucun argument de type "objet" ne doit être clôné en appelant la fonction.
Trouvez les bons modes de passage. Ces règles s'appliquent aux fonctions qui suivent aussi.
Et j'voulais donc savoir si un simple 'string str' pouvait gérer tous ces cas ?
C'est surtout le "un argument de la ligne de commande (type : char const *)" que j'ai pas compris...