Convertir une char en string [Résolu]

Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
5 avril 2008
- 19 déc. 2004 à 14:05 - Dernière réponse :
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
5 avril 2008
- 20 déc. 2004 à 00:12
Bonjour,

Je vient de faire pas mal de progrés en cpp, et je suis arriver à un probléme de variable.

Je declare, et j'utilise une variable de type char :
char  mandr[fred][256];


J'utilise cette variable pour plusieurs actions reperitif, je souhaite ensuite la une valeur de cette variable , mandr[3] en string (la recuperer ou la copier en string), en string pour utiliser des fonctions trés interessent comme replace...

J'ai essayer strcpy, sans succee.

Pouvez vous me dire si il est possible de copier une valeur char=> chaine string.

Merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Dernière intervention
14 novembre 2014
- 19 déc. 2004 à 18:20
3
Merci
Désolé, je n'avais pas tout de suite compris que tu utilises la classe "string". Dans ce cas tu peux faire:
string str;//ton string
char tmp[256];//tampon temporaire
strcpy(tmp,(char*)mandr+(3*256));//copier 3e élément
str.assign(tmp);

Je ne sais pas s'il y'a une meilleure solution car je n'ai pas l'habitude de travailler avec la classe "string".

Merci racpp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de racpp
Meilleure réponse
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Dernière intervention
14 novembre 2014
- 19 déc. 2004 à 18:29
3
Merci
tu peux faire aussi:
str.assign((char*)mandr+(3*256));

Merci racpp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de racpp
Meilleure réponse
Messages postés
232
Date d'inscription
vendredi 9 janvier 2004
Dernière intervention
8 janvier 2005
- 19 déc. 2004 à 19:21
3
Merci
salut,

ça me fait peur toutes ces bidouilles !
Voila comment faire :

#include <string>
#include

using namespace std;
int main()
{
char t[5][256];
t[0][0] = 'a';
t[0][1] = 'b';
t[0][2] = '\0';
string s = t[0];
cout << s << endl;
return 0;
}

Merci plus_plus_fab 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de plus_plus_fab
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Dernière intervention
14 novembre 2014
- 19 déc. 2004 à 16:06
0
Merci
Salut,
Dans ton exemple, tu as déclaré un tableau de char à deux dimensions. strcpy() n'accepte que les pointeurs char* (ou tableau à une seule dimension ). Pour résoudre le problème, il suffit de mettre un cast et ajouter la taille de la 2eme dimention pour manipuler l'élément désiré. Voici un exemple:
char mandr[5][256];// 5 strings de 256 lettres
strcpy((char*)mandr+(0*256),"Première chaine");
strcpy((char*)mandr+(1*256),"Deuxième chaine");
strcat((char*)mandr+(0*256),(char*)mandr+(1*256));
//....

C'est valable pour les autres fonctions aussi.
Commenter la réponse de racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Dernière intervention
14 novembre 2014
- 19 déc. 2004 à 16:12
0
Merci
Je voulais dire "...ajouter la taille de la 2eme dimention multipliée pas l'index de l'élément....."
Commenter la réponse de racpp
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
5 avril 2008
- 19 déc. 2004 à 16:25
0
Merci
Merci tu ma mis sur la voie!

Parcontre je risque de detruire la structure de mon char ? car justement je veux ensuite la reutiliser, car enfaite je veux juste mettre dans une string le tableau [3], j'ai deja eu assez d'actions pour obtenir ce tableau à deux dimensions et je veux pas le perdre.

Deuxiement question :
Si j'ai à prendre ce que tu ma donner, et que je souhaite le recuperer de cette maniere :

string str(chaine);

où CHAINE est la valeur du tableau mandr[3] aprés conversion.

Comment je doit l'intercepter (chaine) ?

merci
Commenter la réponse de juki_webmaster
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Dernière intervention
14 novembre 2014
- 19 déc. 2004 à 17:49
0
Merci
Pour copier la chaine de n'importe quel élément du tableau à 2 dimensions dans un string tu fais:
 char string[256];
strcpy(string,(char*)mandr+(4*256));//copie du 4e élément

Ainsi le contenu du tableau à 2 dimensions ne sera pas changé.
Commenter la réponse de racpp
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
5 avril 2008
- 20 déc. 2004 à 00:12
0
Merci
Vrachement super-merci les gars!

Je fait les toto, et j'ai validais les bon codes.

J'espere que d'autres qui aurons la meme question trouverons sans doute réponse en ce sujet.
Commenter la réponse de juki_webmaster

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.