Rechercher : dans
Par :

Concanetation de chaines de caracteres en c

Dernière réponse le 7 mai 2008 à 19:20:26 aqwxszedc, le 7 mai 2008 à 18:34:48 
 Signaler ce message aux modérateurs

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;
}

Configuration: Linux Fedora
Firefox 1.5.0.12

Meilleures réponses pour « concanetation de chaines de caracteres en c » dans :
Les chaînes de caractères en C++ Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Les guillemets, apostrophes et les chaînes VoirComment jouer avec les guillemets et les apostrophes dans les chaînes 1. Préambule 2. Éviter une coupure dans la chaîne 3. Ajouter un guillemet dans la chaîne 3.1 Avec l'apostrophe 3.2 Avec l'ASCII 3.3 Directement 3.3.1 Méthode...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...

1

JR des cavernes, le 7 mai 2008 à 18:39:05

Tu n'as pas besoin de mettre #include <string.h> pour utiliser strcat() ?

Répondre à JR des cavernes

2

aqwxszedc, le 7 mai 2008 à 18:41:24

G ajoute #include <string.h> . Le programme compile sans probleme mais lors de l'execution il affiche "incident de segmentation"

Répondre à aqwxszedc

5

mype, le 7 mai 2008 à 18:47:20
  • +1

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]);

Répondre à mype

3

mype, le 7 mai 2008 à 18:41:57

Exact il faut inclure la lib string.h pour utiliser strcat() sans avoir le warning

#include <string.h>

Répondre à mype

4

aqwxszedc, le 7 mai 2008 à 18:43:32

Oui mais pk il me dit incident de segmentation???

Répondre à aqwxszedc

6

aqwxszedc, le 7 mai 2008 à 18:51:47

Il y a kkn?

Répondre à aqwxszedc

7

mype, le 7 mai 2008 à 18:56:56

Regarde le message 5...

Répondre à mype

8

aqwxszedc,, le 7 mai 2008 à 19:10:06

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?

Répondre à aqwxszedc,

9

 mype, le 7 mai 2008 à 19:20:26

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));

Répondre à mype
Collection CommentÇaMarche.net