Concanetation de chaines de caracteres en c

aqwxszedc -  
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je voudrais faire un prgramme tres simple qui prend un certain nombre d'argument en entree et affiche la concanetation des arguments.
lors de la compilation on me dit :
con.c: In function ‘main’:
con.c:15: attention : incompatible implicit declaration of built-in function ‘strcat’

Cela fait 3 heures que je cherche et g tjr pas trouvé!

Voici le code du programme:

#include <stdio.h>
#include <stdlib.h>

#define MAX 1
int main (int argc, char * argv[])
{
int i;
char *string;
FILE *infile;
char tampon[MAX];
for (i=1;i<argc;i++)

{

string=strcat(string,argv[i]);

}
printf("%s \n",string);
return EXIT_SUCCESS;
}

7 réponses

JR des cavernes Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   84
 
Tu n'as pas besoin de mettre #include <string.h> pour utiliser strcat() ?
0
aqwxszedc
 
G ajoute #include <string.h> . Le programme compile sans probleme mais lors de l'execution il affiche "incident de segmentation"
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
c'est normal tu n'as pas alloué de memoire a la variable string...
rajoute ça
string=(char *) malloc (100*sizeof(char));
et puis pas besoin de faire
string=strcat(string,argv[i]);
strcat le fait tout seul il suffit de mettre
strcat(string,argv[i]);
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
exact il faut inclure la lib string.h pour utiliser strcat() sans avoir le warning
#include <string.h>
0
aqwxszedc
 
Oui mais pk il me dit incident de segmentation???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aqwxszedc
 
il y a kkn?
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
regarde le message 5...
0
aqwxszedc,
 
je suis d'accord avec ta solution mais le probleme c'est qu'en principe tu sais pas à l'avance combien de memoire tu vas devoir allouer. Est ce que tu as une solution a ce probleme?
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
pour regler ce probleme tu peux calculer la taille de tous les arguments pour savoir de combien de memoire tu auras besoin...
int taille=0;
for(i=0;i<argc;i++)
taille+=strlen(argv[i]);
ensuite tu fais l'allocation avec la taille
string= (char *) malloc((taille+1)*sizeof(char));
0