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

  FORUM HardWare.fr
  Programmation
  C

  [C] Ajout d'un char en fin de chaine en boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Ajout d'un char en fin de chaine en boucle

n°484440
antsite
Je me souviens
Posté le 12-08-2003 à 08:35:27  profilanswer
 

Salut,
Quelle est la maniere propre pour faire ca en C ?
voici mon code:
 
 

Code :
  1. int n;
  2. char c;
  3. char buf[255];
  4. while(...)
  5. {
  6. //recuperation d'un char dans c
  7. n = strlen(buf);
  8. buf[n] = c;
  9. buf[++n] = '\0';
  10. if(n == 255) //si le tampon est plein
  11.   break;
  12. }

mood
Publicité
Posté le 12-08-2003 à 08:35:27  profilanswer
 

n°484445
polo021
Posté le 12-08-2003 à 08:47:34  profilanswer
 

C'est comme ca que j;aurais fait aussi

n°484460
antsite
Je me souviens
Posté le 12-08-2003 à 08:57:35  profilanswer
 

en fait le truc aussi sur lequel je m'interroge c'est que le code est en realite comme ca :
 

Code :
  1. char buf[255]; //var globale
  2. void mafunc()
  3. {
  4. int n;
  5. char c;
  6. n = strlen(buf);
  7. buf[n] = c;
  8. buf[++n] = '\0';
  9. }
  10. main()
  11. {
  12. while(...)
  13. mafunc();
  14. }

 
 
c'est pas genant de creer tres souvent (ben la fonction est appelee souvent car elle est dans le while) int n et char c, vaut mieux ca que des var gloables?

n°484474
LetoII
Le dormeur doit se réveiller
Posté le 12-08-2003 à 09:13:33  profilanswer
 

ANTSite a écrit :

en fait le truc aussi sur lequel je m'interroge c'est que le code est en realite comme ca :
 

Code :
  1. char buf[255]; //var globale
  2. void mafunc()
  3. {
  4. int n;
  5. char c;
  6. n = strlen(buf);
  7. buf[n] = c;
  8. buf[++n] = '\0';
  9. }
  10. main()
  11. {
  12. while(...)
  13. mafunc();
  14. }

 
 
c'est pas genant de creer tres souvent (ben la fonction est appelee souvent car elle est dans le while) int n et char c, vaut mieux ca que des var gloables?


 
C alloué sur la pile, c pas comme si tu faisais de l'allocation dynamique. Ca prend pas plus de temps que si ct des globales.

n°484485
ACut
Posté le 12-08-2003 à 09:21:35  profilanswer
 

Dans la mesure où buffer est global ET si tu ne l'utilises qu'une fois, tu peux aussi l'initialiser à 0 partout. Ca t'évite d'avoir à reclôturer la chaîne à chaque ajout d'un char c dans le buf...


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°484522
Taz
bisounours-codeur
Posté le 12-08-2003 à 09:39:34  profilanswer
 

et avec strcat ? d'ailleurs doit bien exister strncat ou strlcat. jamais utilsé
 
 
et voilà C99
 

strncat
char *strncat(char *s1, const char *s2, size_t n);
The function copies the string s2, not including its terminating null character, to successive elements of the array of char that stores the string s1, beginning with the element that stores the terminating null character of s1. The function copies no more than n characters from s2. It then stores a null character, in the next element to be altered in s1, and returns s1.

n°484555
antsite
Je me souviens
Posté le 12-08-2003 à 09:57:24  profilanswer
 

strncat, mais le probleme c'est que moi c'est un char et non un char* que je veux append :??:

n°484608
Taz
bisounours-codeur
Posté le 12-08-2003 à 10:30:21  profilanswer
 

ben tu le mets dans un char[2]
 

Code :
  1. char holder[2]=""; // ca te mets le 0 final
  2. // mais tu peux lemettre explicitement aussi
  3. holder[0]=c;
  4. holder[1]='\0';
  5. strncat(bidule, holder, n);


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

  [C] Ajout d'un char en fin de chaine en boucle

 

Sujets relatifs
connaitre la largeur d'une chaine en java (ou plutôt jsp)connaitre la largeur d'une chaine en javascript
comment convertir un char en int ??Convertir un char en const char* ?
Ajout/suppression de fichiers dans un repertoire[VB6] Datagrid et ajout d'enregistrement via code
Ajout d'une adresse a la mailing list hebergée sur ovh[C]Probleme de char et string
ASP : Concaténation de chaine, ca me GRRRRRRR[VBA]Ajout de bouton dans la barre d'outils
Plus de sujets relatifs à : [C] Ajout d'un char en fin de chaine en boucle


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