Se connecter avec
S'enregistrer | Connectez-vous

Besoin aide sur un programme c

Dernière réponse : dans Programmation

Bonjour.
Je débute totalement dans le c et il me faudrait un peu d'aide sur le programme suivant.Enfaite j aurais voulu au lieu d'une phrase définie pouvoir écrire ce que l on veut avant le cryptage du genre.
Char mess[]="";
Printf ("Quel est votre message?\n");
Scanf("%s",mess);
....

Voila je coince, le script lui fonctionne il reste juste à ajouter cette fonction.
  1. #include <stdio.h>
  2. Char mess[] = "Les sanglots longs des violons de l'automne\n\
  3. Blessent mon coeur d'une langeur monotone";
  4. #define DECALAGE 5
  5. /*****************************************************************************/
  6. /* */
  7. /* crypt */
  8. /* */
  9. /* But: */
  10. /* Crypte le caractere passe en parametre */
  11. /* */
  12. /* Interface: */
  13. /* p : pointe le caractere a crypter */
  14. /* */
  15. /*****************************************************************************/
  16. Void crypt(char *p)
  17. {
  18. Enum {BAS, HAUT};
  19. Int casse;
  20. If (*p >= 'a' && *p <= 'z') casse = BAS;
  21. Else if (*p >= 'A' && *p <= 'Z') casse = HAUT;
  22. Else return;
  23. *p = *p + DECALAGE;
  24. If (casse == BAS && *p > 'z' || casse == HAUT && *p > 'Z') *p = *p -26;
  25. }
  26. /*****************************************************************************/
  27. /* */
  28. /* main */
  29. /* */
  30. /*****************************************************************************/
  31. Int main()
  32. {
  33. Char *p;
  34. Int I;
  35. /* phase de cryptage */
  36. P = &mess[0];
  37. While(*p)
  38. Crypt(p++);
  39. /* impression du resultat */
  40. Printf("Resultat:\n");
  41. Printf(mess);
  42. Printf("\n");
  43. }

Merci à vous.
PS: Désolé boubpopsyteam message édité.

Autres pages sur : besoin aide programme

Lassé par la pub ? Créez un compte
Expert Programmation

Ca commence très mal, la programmation en C !

D'abord, le langage est sensible à la casse. C'est-à-dire que Int et int n'ont pas du tout la même signification.

Ensuite, tu ne peux surtout pas faire ça :
  1. char mess[]="";
  2. printf ("Quel est votre message?\n" );
  3. scanf("%s",mess);

mess est définie comme une chaîne de 1 caractère en comptant le caractère final. Plantage garanti !!

Et la commande scanf, si simple en apparence, est un piège pour les débutants. Utilise gets, voire fgets, c'est bien mieux.

Je te propose donc :
  1. char mess[1024];
  2. printf("Quel est votre message?\n");
  3. fgets(mess, 1024, stdin);
Lassé par la pub ? Créez un compte