String to Char en C++

Fermé
Angel - 17 déc. 2003 à 23:40
 Bob - 18 déc. 2003 à 00:14
Bonjour à tous,
Voilà je débute en C++ (depuis 3 mois environ) et je suis à la recherche de la fonction qui permet en C++ de convertir une variable de type string en une variable de type char.
De plus, je cherche aussi à convertir un string en int. J'ais réussi à trouver la fonction suivante mais je n'ais jamais réussi à l'utiliser convanblement : string.c_str()
Quelqu'un saurait il l'utiliser, si c'est la bonne fonction en me montrant un exemple simple ?
Je vous remercie tous d'avance.
Au revoir.
A voir également:

3 réponses

Une chaine comporte beaucoup de caractère comme un tableau alors convertir en char signifierait retenir un seul caractère parmis la chaine donc je ne vois pas trop l'intéret mais si tu me détailles ce que tu souhaites obtenir je peux peut être t'aider un peu plus.
0
Oui pardon, je voulais dire de string en chaine de caractère char*
En fait le prototype de mon main donne ça :
int main (int argc, char* argv[])
{
string prog;
prog = argv[0];
string s1=argv[1], s2=argv[2], s3=argv[3];
.......

Et j'ais besoin d'exploiter s1,s2,s3 qui sont en string et ainsi les mettre en chaine de caractère char*, sans changer le main (par là je veux dire que s1,s2 et s3 doivent rester des strings, d'où l'obligation de faire une convertion en char dans une vairable de nom quelconque) afin de pouvoir faire dessus des opérations sur les caractères qui ne sont pas possible avec les variables de type string.
Pareil pour la convertion de string en int. Si s1='2' bah g besoin de pouvoir manipuler le 2 et faire des additions dessus par exemple, d'où le besoin de convertion.
Merci encore.
0
Raté Char * c'est un pointeur ;-) d'où Char *argv[] est un tableau de pointeur et comme tu le sais sans aucun doute argv[1] contient une adresse sur la 1ère case de la chaine puis ainsi de suite pour argv[2] et argv[3]. Si tu souhaites récupérer la chaine tu devrais (sans dire de connerie j'espère ^_^) écrire un truc du genre:

...
string s1;
s1 = *argv[1]; // donc ici on affecte dans s1 la chaine pointée par argv[1]
...
0