Insérer un caractère entre chaque caractère d'une chaîne.

cranor Messages postés 8 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 4 janvier 2004 - 4 janv. 2004 à 16:11
cranor Messages postés 8 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 4 janvier 2004 - 4 janv. 2004 à 16:45
Bonjour,
comme l'indique le sujet du message j'aimerai insérer une virgule entre chaque caractère d'une chaîne que je récupère à partir d'une zone de texte.
j'ai essayé de "découper" cette chaîne et de la reassembler mais je rencontre des problèmes de "type".
Quelqu'un aurait-il une solution efficace ?

.: cranor :.

4 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
4 janv. 2004 à 16:25
Salut,
2 pointeurs, un sur la chaine source et un sur la chaine destination.
Tu copie source dans destination caractere par caractere en avancant les pointeurs. A chaque itération tu insere ton caractere et tu incrementes le pointeur destination.
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
4 janv. 2004 à 16:37
Salut,

int AddChar(char a, char * src, char * dest)
{
char * c = src; // ptr source
char * d = dest; // ptr dest
while(*c) {
*d++ = *c++; // copie normale
*d++ = a; // on insere le caractere
}
*(d-1) = 0; // zero final
return 0;
}

exemple:

char buf[256];
AddChar(',', "coucou", buf);
printf(buf);

buf contient: "c,o,u,c,o,u"
0
cranor Messages postés 8 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 4 janvier 2004
4 janv. 2004 à 16:40
Ah ouai.. jy aurai jamais pensé à ces pointeurs.. :/
va falloir que japprenne parce qu'on dirai quil est impossible de sen passer
Jte remercie de mavoir répondu aussi bien sur ce forum qu'avec les message privé aardman.
.: cranor :.
0
cranor Messages postés 8 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 4 janvier 2004
4 janv. 2004 à 16:45
javai trouvé le code suivant interessant pour mon problème mais il fallait le retravailler, bref je le poste, ça pourrait servir à d'autres personnes

#include
void main()
{
char chaine[7]="string";
char* pchaine=chaine;
for ( int i=0;i<=6;i++)
{cout << pchaine << endl;
pchaine++;
}
cout << "Fin" << endl;
}

.: cranor :.
0
Rejoignez-nous