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

  FORUM HardWare.fr
  Programmation
  C++

  iverser des chaines de caracteres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

iverser des chaines de caracteres

n°340868
ocin2002
Posté le 23-03-2003 à 20:44:23  profilanswer
 

salut a tous
j'ai un petit probleme  
voila je souhaite inverser 2 chaine de caracteres
je m'explique avec un exemple:
char n1[20] contient "salut"
char n2[20] contient "ocin"
je souhaiteré que  
n1[20] contient "ocin"
n2[20] contient "salut"
 
alors j'ai fé dans le programme:
n3[20]=n1[20];
n1[20]=n2[20];
n2[20]=n3[20];
mais ca marche pas  
quelqu'un peu m'aider
 
merci d'avance

mood
Publicité
Posté le 23-03-2003 à 20:44:23  profilanswer
 

n°340870
Taz
bisounours-codeur
Posté le 23-03-2003 à 20:46:14  profilanswer
 

tu peux donner ton code s'il te plait, par ce que la je commence à flipper sur tout ce qu'il va falloir reprendre... aboule le source  :bounce:

n°340871
ocin2002
Posté le 23-03-2003 à 20:48:32  profilanswer
 

Code :
  1. void main(void)
  2. { int i,r,s;
  3. int a,b,c,e;
  4. int tb[22];
  5. char n1[20];
  6. char n2[20];
  7. char n3[20];
  8. char nom[20];
  9. FILE *fic;
  10. FILE *fi;
  11.    tb[4]=0;
  12.    tb[5]=2;
  13.    tb[6]=3;
  14.    tb[7]=5;
  15.    tb[8]=8;
  16.    tb[9]=12;
  17.    tb[10]=15;
  18.    tb[11]=30;
  19.    tb[12]=60;
  20.    tb[13]=120;
  21.    tb[14]=240;
  22.    tb[15]=480;
  23.    tb[16]=720;
  24.    tb[17]=1000;
  25.    tb[18]=1500;
  26.    tb[19]=3000;
  27.    tb[20]=10000;
  28. fic = fopen("score.txt","r+" ); //ouvrir le fichier
  29. if ( fic==NULL)
  30. {
  31. printf("\n ouverture impossible!" );   //si il n'arrive pas a l'ouvrir
  32. }
  33. fi = fopen("nom.txt","r+" ); //ouvrir le fichier
  34. if ( fi==NULL)
  35. {
  36. printf("\n ouverture impossible!" );   //si il n'arrive pas a l'ouvrir
  37. }
  38. r=0;
  39. for(s=r;s<3;s++)
  40.       {
  41. fscanf(fic,"%d \n",&tb[s]);
  42. }
  43. fscanf(fi,"%[^\n] %[^\n] %[^\n] ",n1,n2,n3);
  44. printf("quel est votre nom ?\n" );
  45. scanf("%s",nom);
  46. a=tb[0];
  47. b=tb[1];
  48. c=tb[2];
  49. i=random(20);
  50. e=tb[i];
  51. if (c<e)
  52.        {
  53. a=b;
  54. *n1=*n2;
  55. b=c;
  56. *n2=*n3;
  57. c=e;
  58. n3[20]=nom[20];
  59. }
  60. if (e<c)
  61. {   if(a<e)
  62. {
  63. a=e;
  64. n1[20]=nom[20];
  65. }
  66.     if (b<e)
  67.        {
  68. a=b;
  69. *n1=*n2;
  70. b=e;
  71. n2[20]=nom[20];
  72. }
  73. }
  74. fprintf(fic,"%d00 \n%d00 \n%d00 \n",a,b,c);
  75. fprintf(fic,"%s \n%s \n%s \n",n1,n2,n3);
  76. fclose(fic);
  77. fclose(fi);
  78. }


 
c'est peut etre pas tres bien ecrit c bon je debute

n°340877
TheFox37
pourtant chez moi, ça marche
Posté le 23-03-2003 à 21:21:15  profilanswer
 

bon, je me suis pas tapé ton code en entier, mais de toutes façons ça peut pas marcher :  
 
qd tu écris char n1[20] en déclaration de variable, tu dis que n1 est un tableau de 20 caractères. Le nom du tableau est donc bien n1. Or ensuite, pour inverser, tu écris n3[20] = n1[20]. Là ce que tu fais, c'est mettre le caractère aytant l'indice 20 du tableau n1 à la place 20 dans le tableau n3. Tu vois donc que tu ne fais l'échange que d'un caractère et non d'un tableau de caractères. De plus, un tableau à 20 cases est indicé de 0 à 19, donc l'indice 20 est en dehors!

n°340883
ocin2002
Posté le 23-03-2003 à 21:37:50  profilanswer
 

ben c'est gentil d'avoir chercher mais j'ai trouver
je vais utiliser strcpy qui copy des chaine de caracteres  
c'est dans la librairie <string.h>
 
merci encore
 :hello:

n°341012
TheFox37
pourtant chez moi, ça marche
Posté le 24-03-2003 à 07:57:43  profilanswer
 

ben tu n'avais pas demandé une autre méthode, mais pourquoi celle là ne marchait pas  :D  
il est évident que la librairie string.h contient tout ce qu'il faut pour gérer les chaines de caractère (d'où son nom...). Ceci dit, j'espère que tu as compris les erreurs que tu avais faites

n°341444
nonokao
moooort o foooot !!!
Posté le 24-03-2003 à 14:22:57  profilanswer
 

TheFox37 a écrit :

... Ceci dit, j'espère que tu as compris les erreurs que tu avais faites


 
ouais, kler j'espère que t'as compris, sinon c'est pas gagné pour l'avenir  :pt1cable:

n°341471
bjone
Insert booze to continue
Posté le 24-03-2003 à 15:00:28  profilanswer
 

++Taz a écrit :

tu peux donner ton code s'il te plait, par ce que la je commence à flipper sur tout ce qu'il va falloir reprendre... aboule le source  :bounce:  

 
 
:lol:  [:ddt]  
 
au moins c'est sincère & franc  :jap:

n°341738
Taz
bisounours-codeur
Posté le 24-03-2003 à 18:41:21  profilanswer
 

une remarque entre 1000:
 
c'est bien joli tes messages d'erreur en cas de problème, mais ça ne sert pas à grand chose si tu ne traites pas effectivement ces erreurs. Et ton programme plantera quand meme.
 
our un traitement basique:
exit() de <stdlib.h> est ton ami
les codes de retours standards sont 0, EXIT_SUCCESS et EXIT_FAILURE


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

  iverser des chaines de caracteres

 

Sujets relatifs
[PHP] multiplier des morceaux de chaîne de caractèresConversion chaine de caracteres vers entier??
Tableau de chaînes de caractères...Comment définir le nombre de caractères maximal pour une <textarea> ?
nombre de sous chaines dans une chaineComment enregistrer une chaine de caracteres saisie au clavier ?
Passage erroné d'un tableau de chaînes de caractères à une procédure..partager une chaîne de caractères
Plus de sujets relatifs à : iverser des chaines de caracteres


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