Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1232 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème de débutant avec strcat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de débutant avec strcat

n°1271838
toutoune
Posté le 22-12-2005 à 15:11:10  profilanswer
 

Bonjour à tous...
Pas très doué en C, je cherche à renvoyer une en-tête compatible HTTP dont une des ligne contient la longueur du segment que je dois renvoyer.
Voici un bout de mon code  

Code :
  1. char buffer[TAILLE_BUFFER];
  2. char a_envoyer[TAILLE_BUFFER];
  3. strcat(a_envoyer,"Coucou !" );
  4. strcat(buffer,"HTTP/1.1 200 OK\nAccept-Ranges: bytes\nContent-Length: " );
  5. int taille=sizeof(a_envoyer);
  6. strcat(buffer,(char)sizeof(a_envoyer));
  7. strcat(buffer,"\nContent-Type: text/html" );
  8. strcat(buffer,a_envoyer);


 
La ligne 7 semble poser problème puisque j'ai un warning :

Code :
  1. passing argument 2 of 'strcat' makes pointer from integer without a cast


Où est l'erreur du débutant...?

Message cité 1 fois
Message édité par toutoune le 22-12-2005 à 15:11:49
mood
Publicité
Posté le 22-12-2005 à 15:11:10  profilanswer
 

n°1271843
Elmoricq
Modérateur
Posté le 22-12-2005 à 15:13:55  profilanswer
 

toutoune a écrit :

Où est l'erreur du débutant...?


 
Prototype de strcat() :

char *strcat(char *s1, const char *s2);


 
Tu as marqué :

strcat(buffer,(char)sizeof(a_envoyer));


 
[:klem3i1]

n°1271848
toutoune
Posté le 22-12-2005 à 15:16:30  profilanswer
 

Quelle est alors la solution pour concaténer du contenu variable telle qu'une taille de chaine?

n°1271854
Elmoricq
Modérateur
Posté le 22-12-2005 à 15:22:00  profilanswer
 

Une solution possible, remplacer le strcat() fautif par sprintf() :
 

sprintf(buffer,"%s%d",buffer, TAILLE_BUFFER);


 
Ou, puisqu'on va par là, étendre la logique en adoptant carrément sprintf() à la place de strcat() :
 

Code :
  1. sprintf(buffer, "HTTP/1.1 200 OK\nAccept-Ranges: bytes\nContent-Length: %d\nContent-Type: text/html%s", TAILLE_BUFFER, a_envoyer);


 
(sur une seule ligne c'est long et difficile à lire, il y a plusieurs solutions pour présenter ce code pour le rendre plus compréhensible)


Message édité par Elmoricq le 22-12-2005 à 15:22:40
n°1271862
toutoune
Posté le 22-12-2005 à 15:26:58  profilanswer
 

Super, merci beaucoup pour ces réponses rapides et efficaces!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème de débutant avec strcat

 

Sujets relatifs
[CSS] Problème de CSS avec Firefox, mais pas avec Opera ou IE.Problème de récupération de variable de session.
[C++] Probleme pour recuperer la date couranteprobleme avec easyphp v1.7
probleme sur le retun d'une classe de load XMLproblème avec phpBB2...
Problème messagerie (caractères illisibles...)[HELP!]probleme dans mon programme
C# problème de manipulation de chaine de caractère.[oracle/pl/sql] problème trigger
Plus de sujets relatifs à : Problème de débutant avec strcat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR