Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : concatènation de char [ Divers / Débutant(e) ] (nord666)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.