Concatener un caratctère à une chaine de caractèreq

Signaler
Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009
-
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011
-
salut, voila je veux créer une chaine de caractère en concaténant les caractères depuis une autre chaine (je ne veux pas concatener toute la chaine car mon but est de décortiquer une chaine contenant des espaces en plusieurs chaines sans espaces).

exemple:
chaine "salut ca va"==> ch1: "salut" ch2:"ca" ch3:"va"

j'utiliserais par la suite des listes chainées pour stocker mes chaines au lieu de variables mais il me faut d'abord de trouver la solution pour les chaines.

est ce qu'il ya un moyen pour ceci en C sous DOS merci pour Vos réponses.
P.S: strcat(chaine,caractère) ==> ça me donne une ERREUR

1 réponse

Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

/* essai ceci */

#include <string.h>

#include <stdio.h>



int main()

{

char * ptr;

char chaine[64];



/* chaine de test */

strcpy( chaine, "abc def ghi jkl mno pqr stu vwx yz" );



/* on va `splitter` la chaine à tous les espaces */

if ( (ptr = strtok(chaine, " ")) != NULL )

{

do

{

/* affiche toutes les chaines trouvées */

puts( ptr );

}

/* recherche le/les prochain(s) */

while ( (ptr = strtok(NULL, " ")) != NULL );

}

puts( "fin ..." );



return 0;

}



pour une simple concaténation, c'est _Extrèmement_ simple:

prend la taille de la chaine(size_t taille = strlen(chaine)) et ensuite:

chaine[taille++] = 'a';

chaine[taille++] = 'b';

/* etc ... */

chaine[taille] = '\0'; /* à ne pas oublier! */



ou encore:



char * ptr;

char chaine[64];



ptr = strcpy(chaine, "salut");

while ( *ptr ) ++ptr; /* trouve la fin de la chaine `chaine` */



/* et ensuite */

*ptr++ = 'a';

*ptr++ = 'b';

/* etc ... */

*ptr = '\0'; /* à ne pas oublier! */



puts( chaine );




il existe des tonnes de méthodes pour faire cela, à toi de prendre celle qui te convient ...






~(.:: NitRic ::.)~