Petit problème avec strcat

Résolu
macbang Messages postés 14 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 3 juillet 2009 - 1 juil. 2009 à 11:07
macbang Messages postés 14 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 3 juillet 2009 - 1 juil. 2009 à 14:15
Bonjour,
Je rencontre un petit problème avec la fonction strcat.

j'ai déclaré plusieurs chaine de caractère.
la première récupère un int converti en caractère, je l'ai déclaré ainsi :
char chaine[2]="";

la seconde récupère plusieurs concaténations successives.
char chaine_finale[20]="";

avec les variables :
int i;
char i_char[2];

j'ai donc dans mon code :
strcat(chaine,"0");
sprintf(i_char,"%d",i);
strcat(chaine,i_char);

pour l'instant pas de problème, la variable chaine contient bien les caractères que je souhaite.

Mais lorsque je concatène cette chaine avec l'autre :
strcat (chaine_final, "test_");
strcat (chaine_final,chaine);
printf ("chaine_final = %s\n",chaine_final);

voici le résultat :
chaine_final = test_

la deuxième partie (chaine) n'a pas été concaténé.
Comment puis-je faire ?

2 réponses

cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
1 juil. 2009 à 12:51
Bonjour,

Peux-tu donner un exemple complet qui ne fonctionne pas ?

Voici ce que j'ai testé:

#include<stdio.h>
#include<string.h>

int main() {

  char chaine[2]="";

  char chaine_final[20]="";

  int i = 2;
  char i_char[2];

  strcat(chaine,"0");
  sprintf(i_char,"%d",i);
  strcat(chaine,i_char);

  strcat (chaine_final, "test_");
  strcat (chaine_final,chaine);
  printf ("chaine_final = %s\n",chaine_final);

  return 0;
}

Cela m'affiche : chaine_final = test_02
Ce qui me semble correct.

En revanche, comprends-tu le comportement du programme suivant ?

#include<string.h>
#include<stdio.h>

int main() {
  int i;
  char i_char[2] ;

  i = 421 ;
  sprintf(i_char, "%d", i);

  printf("i: %d\ni_char: %s\n", i, i_char);

  return 0;
}

Voici ce qu'il m'affiche :

i: 49
i_char: 421

Bonne prog,
3
macbang Messages postés 14 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 3 juillet 2009
1 juil. 2009 à 14:15
j'ai remplacé le premier strcat par un strcpy et cela marche maintenant...
strcpy (chaine_final, "test_");
0
Rejoignez-nous