Convertir un tableau de char en string - Help

Résolu/Fermé
Signaler
Messages postés
4
Date d'inscription
jeudi 29 décembre 2016
Statut
Membre
Dernière intervention
2 janvier 2017
-
Messages postés
4
Date d'inscription
jeudi 29 décembre 2016
Statut
Membre
Dernière intervention
2 janvier 2017
-
Bonjour,

Actuellement je développe une application console en C ++ mais je suis bloqué : comment convertir un tableau de char en string ?

Par exemple, voici un tableau de char:

char test[5];
test[0] = 'B';
test[1] = 'o';
test[2] = 'b';
test[3] = 'b';
test[4] = 'y';

Et que je veux que mon string "texte" soit juste égal a "Bob" et pas a "Bobby", j'avais essayer ça mais ça ne marche pas :

string texte;
texte = test[0],test[1],test[2];
cout << string;

Il ne m'affiche que la dernière lettre...

Comment dois-je faire ?

1 réponse

Messages postés
341
Date d'inscription
samedi 14 mai 2011
Statut
Membre
Dernière intervention
14 janvier 2018
51
Bonjour,

Il faut utiliser un des constructeurs de
string
:
string texte(test,3);

Remarque : ta chaîne de caractères
test
devrait se terminer par
'\0'
. Ce qui donne :
char test[5+1];
// ...
test[5] = '\0';
ou plus simplement :
char test[5+1] = "Bobby";
2
Messages postés
4
Date d'inscription
jeudi 29 décembre 2016
Statut
Membre
Dernière intervention
2 janvier 2017

Merci beaucoup ! Ca marche nickel !
0
Messages postés
4
Date d'inscription
jeudi 29 décembre 2016
Statut
Membre
Dernière intervention
2 janvier 2017

Mais juste un chose,si je souhaite recperer une partie précise tu tableau, genre :

char test[5+1] = "Jean est intelligent"

Et je veux juste recupérer "est" et pas "Jean est", comment dois je faire ?
0
Messages postés
341
Date d'inscription
samedi 14 mai 2011
Statut
Membre
Dernière intervention
14 janvier 2018
51
Attention, "Jean est intelligent" contient 20 caractères, donc il faudrait déclarer :
char test[20+1] = "Jean est intelligent";
ou plus simplement (pour éviter d'avoir à compter) :
char test[] = "Jean est intelligent";
 

Mais pour répondre à ta question, je t'invite à consulter la liste des constructeurs de
string
ici. Tu peux ainsi constater que tu peux utiliser le (3) ainsi :
string texte(test,5,3);
ou le (7) comme ceci :
string texte(test+5,test+5+3);
 
0
Messages postés
4
Date d'inscription
jeudi 29 décembre 2016
Statut
Membre
Dernière intervention
2 janvier 2017
>
Messages postés
341
Date d'inscription
samedi 14 mai 2011
Statut
Membre
Dernière intervention
14 janvier 2018

Merci mille fois ! Ton aide m'est très utile !
0