Votre question

programme pour changer un mot à partir de son code ascii

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
30 Octobre 2008 21:33:05

Bonjour,
Je voudrais faire un programme qui permet de:
Enregistrer un mot saisi par l'utilisateur
Enregistrer un nombre saisi par l'utilisateur
Ajouter à la valeur ascii de chaque lettre le nombre précédemment saisi
Ecrire le mot résultant.
Le problème c'est que dans l'école on est obligé de travailler avec Turbo C...
Voici un premier effort mais ça marche bizarrement et j'ai besoin d'aide...
  1. int main()
  2. {
  3. char T[20];
  4. int n = 0, m = 0, i = 0;
  5. printf("\nEcrivez un mot: ");
  6. scanf("%s", &T);
  7. m = strlen(T);
  8. printf("\nEcrivez un nombre: ");
  9. scanf("%d", &n);
  10. for(i = 0 ; i < m ; i++)
  11. {
  12. T[i] += n;
  13. }
  14. printf("Le nouveau mot est : %s \n", T);
  15. system("PAUSE");
  16. }

Je pense que je travaillais avec le code décimal des caractères, pas le code ascii? :whistle: 
J'ai besoin de votre aide c'est très urgent.
Merci d'avance :hello: 

Autres pages sur : programme changer mot partir code ascii

a b L Programmation
30 Octobre 2008 23:25:45

un char c'est un nombre de 0 à 255 sur 1 octet, et à chaque nombre est associé un caractère (c'est l'encodage ascii).
donc, si tu ajoute N, tu te décales de N dans la table ascii, et comme un char est codé sur 1 octets, lorsque tu ajoute, ça prend toujours le modulo 256, donc ton code marche aussi si tu fais N=254 (= 256 - 2) et T=48 => T + N = 302 = 0x012E, or comme ce n'est qu'un octet, ça ne prend que 0x2E, donc T + N = 46 (= 48 - 2 = 302 % 256).
31 Octobre 2008 17:44:01

J'ai pas très bien saisis, je suis encore débutant.
Le code précédent marche, ou je dois faire un modulo de n?
a b L Programmation
1 Novembre 2008 17:35:10

Ton code marche puisque le modulo est fait automatiquement par la limitation à 1 octet du type "char"
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS