COMMENT CONCATENER UN CARACTERE AVEC UNE CHAINE DE CARACTERE EN C??

fatfat692675 Messages postés 3 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 14 mai 2009 - 28 avril 2009 à 00:18
fatfat692675 Messages postés 3 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 14 mai 2009 - 14 mai 2009 à 00:27
Bonsoir,

J'aimerais bien que quelqu'un m'aide pour reussir a concatener un caractere avec une chaine de caractere, c-a-d :

exemple:
bonjou+r ==> bonjour

Merci d'avance
Bonne soirée

2 réponses

cs_beg0 Messages postés 51 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 13 mars 2011 1
28 avril 2009 à 01:08
Y'a  plein de façons et ca dépend de ta chaine de caractère au départ, et de ce que tu veux faire de ton resultat
le plus simple :

char* ma_chaine=calloc(1,42);
strcpy(ma_chaine,"bonjou");

/*1ere version*/
size_t taille=strlen(ma_chaine);
char c='r';
ma_chaine[taille]=c;
ma_chaine[taille+1]='\0';

/*seconde version, utilise strcat*/
char a_concatener[2];
a_concatener[0]=c;
a_concatener[1]='\0';

strcat(ma_chaine, a_concatener);

/*troisieme version, avec sprintf*/
char* ma_nouvelle_chaine=(char*)calloc(1,42);
sprintf(ma_nouvelle_chaine,"%s%c",ma_chaine,c);

le probleme de ces codes ultra simple, c'est le possible buffer overflow et tous les problemes de memoires qui sont lies. Y'a des solutions pour chaque bout de code, mais je detaillerais pas ici.
A mon sens la 1ere est la plus perfomante, si y'en a qui pense le contraire, je serais curieux d'entrendre vos arguments
0
fatfat692675 Messages postés 3 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 14 mai 2009
14 mai 2009 à 00:27
Bonsoir beg0!!!

merci pour votre aide ca ma était tres utile!!

Bonne soirée
0
Rejoignez-nous