begin process at 2010 02 10 10:45:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

concatènation de char


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

concatènation de char

lundi 12 mai 2008 à 23:43:59 | concatènation de char

nord666

Salut,

J'aimerais pouvoir concatèner des char. Voici ce que je veux faire :


int i = 0; //Peut être variable. Ce n'est que pour l'exemple
char * charConcat = "Personne #" + (i ± '0'); //Il y a un ± car je ne me rappele plus lequel il faut utiliser pour transformer un int en char.


Je voudrais que dans charConcat  il y est la chaîne "Personne #0".

Ps.: Certains me conseilleront d'utiliser la librairy String mais je ne peut pas l'utiliser.

Merci à tous!
lundi 12 mai 2008 à 23:50:16 | Re : concatènation de char

Pistol_Pete

Réponse acceptée !
Salut
Essaye plutot la fonction strcat.
Si tu veux pouvoir utiliser la concaténation avec le +, il faux que tu utilises la classe CString.


A+
Mon site internet : [ Lien ]

mardi 13 mai 2008 à 00:03:59 | Re : concatènation de char

SAKingdom

Membre Club
char  charConcat[16] = "Personne #";

Ne pas oublier de réserver la mémoire nécessaire.

C++ (@++)

mardi 13 mai 2008 à 02:26:25 | Re : concatènation de char

jfrancois

Réponse acceptée !
Bonsoir,

Les fonctions de traitement de chaînes de caractères str???() ne fonctionnent qu'avec des chaînes de caractères ! Une chaîne de caractères est un tableau de caractères contenant les caractères de la chaîne suivis d'un zéro binaire (le terminateur) ! Il est donc hors de question de concaténer un caractère avec la fonction strcat() (il n'y a pas ce terminateur derrière le caractère et donc strcat() va concaténer jusqu'à ce qu'elle en rencontre un en mémoire).

Il y a 3 possibilités sans passer par une classe de gestion de chaînes de caractères :

1) Placer le caractère directement dans la chaîne de caractères :
char charConcat[16] = "Personne #?";
charConcat[10] = i + '0'; // remplace le ?
(valable ici que pour 1 chiffre à placer !)

2) Transformer le caractère en chaîne de caractères pour pouvoir concaténer :
char charConcat[16];
char charIndex[2];
charIndex[0] = i + '0';
charIndex[1] = 0; // terminateur
strcpy(charConcat,"Personne #");
strcat(charConcat,charIndex);
(valable ici que pour 1 chiffre à placer !)
strcpy(charConcat,"Personne #");
strcat(charConcat,charIndex);
peut s'écrire aussi :
strcat(strcpy(charConcat,"Personne #"),charIndex);


3) Formater directement dans la chaîne réceptrice :
char charConcat[16];
sprintf(charConcat,"Personne #%d",i);
(valable quelque soit le nombre de chiffres à placer !)

Jean-François

mardi 13 mai 2008 à 03:04:34 | Re : concatènation de char

SAKingdom

Membre Club
Je pencherais pour:
char charConcat[32] = "Personne #";
itoa(id, &charConcat[10], 10);

C++ (@++)

mardi 13 mai 2008 à 10:03:02 | Re : concatènation de char

jfrancois

C'est une autre possibilité de formatage direct comme avec sprintf() mais en initialisant une partie de la chaîne à la déclaration de celle-ci et en repérant la position de la chaîne à placer !

L'avantage du sprintf() c'est que tout se passe en une instruction et qu'il n'y a pas de position à repérer. Et si la chaîne à créer comportait quelque chose derrière le nombre (comme "Personne #1#") ça marche aussi, pas avec les autres méthodes.

Jean-François

mardi 13 mai 2008 à 15:08:59 | Re : concatènation de char

SAKingdom

Membre Club
Mais l'inconvénient c'est qu'il faut tout recopier à chaque fois dans le buffer. De plus, le fais que sprintf traite des regex ralentie donc le traitement.

"Et si la chaîne à créer comportait quelque chose derrière le nombre (comme "Personne #1#") ça marche aussi, pas avec les autres méthodes."

En effet. Cependant, on peut bien se bricoler un itoa retournant un pointeur sur fin de chaine. Dans ce cas, aucun problème à ce niveau.

C++ (@++)

mardi 13 mai 2008 à 19:57:04 | Re : concatènation de char

nord666

Merci à tous pour vos merveilleux conseils pour mon problème!


Cette discussion est classée dans : int, utiliser, char, concatènation, charconcat


Répondre à ce message

Sujets en rapport avec ce message

Dans le genre prenant........ [ par Xs ] oui !c 'est trés chiant !j'explique mon pb : j'ai un code source, fais par moi-meme, et dedans, je veux que l'on saisisse des renseignement comme le l int to char ! [ par nullspace ] Voila mon problème !J'ai une résultat sous forme de variable INT, et je veux que ce résultat soit affecté à une variable de type CHAR.Genre, si j'ai 6 Conversion int -> char * [ par Xentor ] Bonjour tout le monde, et merci de lire mon message parce que je suis un vrai débutant !Je voudrais savoir comment convertir un entier en tableau de c conversion [ par coyotedef ] salut!!lors de la compilation de mon code une erreur apparait. impossible de trouver un remede. "cannot convert parameter 1 from 'char [10]' to 'char' lire dans un fichier [ par skeul ] Bonjour,je rencontre qqs difficultés a faire une fonction qui lit un fichier et qui rentre la chaine de caractere dans un tableauy a comme un probleme jai un probleme avec ma source!!!!! jai vérifeir et je ne trouve rien...pouvez vous m'aider.... [ par retaks666 ] alors jai veut faire un programme ki génére une suite de caractere d'un nombre donné...et sa marche po... je vous done ma source si vous pouvez m'aide vecteur avec int et char [ par Tyroflan ] int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable vecteur avec int et char [ par Tyroflan ] int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable convertir un int en char ou en string [ par mimyne ] Bonjour je voudrai savoir comment on peut faire en c++ pour convertir un int en char ou bien en string la fonction itoa ne marche pas merci tableau char [ par dingue007 ] Voila je dois faire un prog en C++ : un tableau avec les mois de lannée et quand je tape un chiffre il me sort le mois ! mais je narrive pas a faire l


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales