Tom's Guide > Forum > Programmation > programme pour changer un mot à partir de son code ascii

programme pour changer un mot à partir de son code ascii

Forum Programmation : programme pour changer un mot à partir de son code ascii

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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...

Code :
  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:

------------------------------ Quelle est la différence entre Windows Vista et un virus?
->Un virus marche correctement.
Faîtes votre devoir, signez la pétition!
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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[i]=48 => T[i] + N = 302 = 0x012E, or comme ce n'est qu'un octet, ça ne prend que 0x2E, donc T[i] + N = 46 (= 48 - 2 = 302 % 256).

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

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?


Message édité par cracker le 31-10-2008 à 17:45:50
------------------------------ Quelle est la différence entre Windows Vista et un virus?
->Un virus marche correctement.
Faîtes votre devoir, signez la pétition!
Répondre à cracker

Ton code marche puisque le modulo est fait automatiquement par la limitation à 1 octet du type "char"

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > programme pour changer un mot à partir de son code ascii
Aller à :

Il y a 1354 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens