string.h ??

string.h ?? - C - Programmation

Marsh Posté le 23-04-2004 à 20:02:06    

J'aimerai savoir si les fonction de string.h (strcpy strcat strlen ect...) Sont dynamique ??? ( du genre je rentre 10 prenom 10 nom (chaine de caractere) ensuite je mais sa dans une boucle pour tout afficher en m'aidant de ses fonctions) ??? j'ai essayer et ca ne fonctionne pas ;(

Reply

Marsh Posté le 23-04-2004 à 20:02:06   

Reply

Marsh Posté le 23-04-2004 à 20:04:14    

je crains le pire. donne un bout de code. Tu entends quoi par "dynamique"

Reply

Marsh Posté le 23-04-2004 à 20:17:57    

JagStang a écrit :

je crains le pire. donne un bout de code. Tu entends quoi par "dynamique"


 
oui je te donne un exemple par ex ca ca fonctionne :
 

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. test ()
  5. {
  6. //declaration tableau premier deuxieme total
  7. char one[10],two[10],total[20] ;
  8. scanf("%s %s",one,two) ;
  9. strcpy(total,one) ;
  10. strcat(total," " ) ;
  11. strcat(total,two) ;
  12. printf("%s",total) ;
  13. }


 
la ca fonctionne mais par exemple je fait ca avec une boucle pour avoir plus chaines dans les 2 tableau je suis oblige de faire a la fin  
for(.;.;.)
printf("%s %s",one,two) ;
pour afficher toutes les chaines..  
et moi je voudrais passer par la premiere solution en utilisant string.h mais ca ne fonctionne pas :/

Reply

Marsh Posté le 23-04-2004 à 20:32:59    

du genre :
 

Code :
  1. #include stdio.h
  2. #include stdlib.h
  3. #include string.h
  4. test()
  5. {
  6. //tableau 1 2 total
  7. char one[10][20],two[10][20],total[10][50] ;
  8. int a=0,b=0;
  9. test()
  10.     {
  11.  
  12. while(...)         
  13. {
  14. scanf("%s %s",one[a],two[a]) ;
  15. a++
  16. b++ ;
  17. }
  18.     for(..;..;a++)
  19.   {
  20. strcpy(total,one[a]) ;
  21. strcat(total," " ) ;
  22. strcat(total,two[a]) ;
  23. printf("%s\n",total) ;
  24.   }
  25.           }


Message édité par ombreee le 23-04-2004 à 20:34:36
Reply

Marsh Posté le 23-04-2004 à 21:12:42    

1) utilise fgets ,jamais scanf + %s
2) tes chaines sont de tailles dynamiques : alloue les avec malloc/calloc, agrandit les avec realloc
3) ça serait bonne idée pour les débutants de vous proposer une bilbiothèque qui alloue à chaque fois une nouvelle chaine. là ya pas a réfléchir, suffit de free-er systématiquement

Reply

Marsh Posté le 23-04-2004 à 21:27:15    

Taz a écrit :

1) utilise fgets ,jamais scanf + %s
2) tes chaines sont de tailles dynamiques : alloue les avec malloc/calloc, agrandit les avec realloc
3) ça serait bonne idée pour les débutants de vous proposer une bilbiothèque qui alloue à chaque fois une nouvelle chaine. là ya pas a réfléchir, suffit de free-er systématiquement


 
merci du conseil

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed