[Résolu]Probleme de traitement de chaine de caractere

Probleme de traitement de chaine de caractere [Résolu] - C - Programmation

Marsh Posté le 30-10-2003 à 21:19:19    

Salut!
Voilà ca fait un petit moment que je galere sur ce prog
C'est un truc de cryptologie a 2cent.
Le programme s'execute correctement mais aucun effet lors du printf de fin.
Surment une histoire de pointeur dans les parages mais je vois pas trop ou..

Code :
  1. void main()
  2. {
  3. char chaine[50];
  4. gets(chaine);
  5. int i;
  6. for(i=0;i<strlen(chaine);i++);
  7. {
  8. switch(chaine[i])
  9. {
  10.   case 'a':
  11.   chaine[i]='r';
  12.   break;
  13.   case 'e':
  14.   chaine[i]='z';
  15.   break;
  16.   case 'i':
  17.   chaine[i]='m';
  18.   break;
  19.   case 'o':
  20.   chaine[i]='n';
  21.   break;
  22.   case 'u':
  23.   chaine[i]='q';
  24.   break;
  25.   case 'y':
  26.   chaine[i]='p';
  27.   break;
  28. }
  29. }
  30. printf("%s",chaine);
  31. getchar();
  32. }


 
Merci d'avance.


Message édité par smilm le 30-10-2003 à 23:30:43
Reply

Marsh Posté le 30-10-2003 à 21:19:19   

Reply

Marsh Posté le 30-10-2003 à 21:33:22    

Il y a un ";" en trop a la fin de la ligne for

Reply

Marsh Posté le 30-10-2003 à 21:35:09    

Kristoph a écrit :

Il y a un ";" en trop a la fin de la ligne for
 


effectivement mais ca pose aucun probleme..
tu peux mettre des ";" un peu "partout" meme si il y'a pas d'instructions a leurs droite.

Reply

Marsh Posté le 30-10-2003 à 21:48:13    

SmilM a écrit :


effectivement mais ca pose aucun probleme..


 
 [:rotflmao]  
 
 
 
Pour un for, c'est un problème :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 30-10-2003 à 21:51:10    

SmilM a écrit :


tu peux mettre des ";" un peu "partout" meme si il y'a pas d'instructions a leurs droite.


ou t'as appris le C toi ? tu fous des ";" après les for, les if, et tout sans scrupules ? :heink:


Message édité par Harkonnen le 30-10-2003 à 21:51:50

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 30-10-2003 à 21:57:45    

Le for(i = 0; i < strlen(chaine); i ++); tourne en rond pour rien, puis i vaut strlen(chaine) en sortie de boucle.
Vu qu'on tombe sur le '\0' lors du switch(chaine[i]), il n'y a pas de traitement.
On retrouve ce qui a été entré sans altération.

Reply

Marsh Posté le 30-10-2003 à 21:58:41    

SmilM a écrit :


effectivement mais ca pose aucun probleme..
tu peux mettre des ";" un peu "partout" meme si il y'a pas d'instructions a leurs droite.


 
Tu pourrais essayer au moins ! Moi j'ai fait l'effort de compiler ton programme et de chercher l'erreure. Faut dire que ça m'intriguait car le programme avait vraiment l'air correcte vu de loin :)

Reply

Marsh Posté le 30-10-2003 à 23:29:18    

Autant pour moi vraiment désolé..
pour le


tu peux mettre des ";" un peu "partout" meme si il y'a pas d'instructions a leurs droite.


j'ai cru lire ca dans un bookin sur le C, mais il disait plutot "on peut mettre des ";" tout seul sur une ligne si celle ci est VIDE"
 
Encore merci HFR...
Désolé :(  

Reply

Marsh Posté le 01-11-2003 à 19:23:07    

ok c'est interessant, et sinon tu as le droit de declarer tes variables en debut de block merci

Reply

Sujets relatifs:

Leave a Replay

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