Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/05/2013, à 22:10

Kail

langage C : Programme qui code une phrase exemple a devient b, b -> c

Bonjour,

j'ai créer un programme qui va permettre de traduire des textes pour qu'il ne soit pas compréhensible par d'autres.

Exemple = " bonjour" va devenir " cpokpvs"

Pourquoi ?Car mon programme fait en sorte d'avancer d'une lettre, c'est à dire a devient b, b devient c etc. Donc Bonjour devient cpokpvs !

Problème : J'ai codé des lignes pour rien, j'aimerai raccourcir mon programme, par exemple j'aimerai qu'au lieu d'avancer d'une lettre, mon code l'avance de deux , ce qui donnerait pour a -> c ou pour b -> d !

Voici le code



#include <stdio.h>
#include <string.h>


char tab[100]= "abcdefghijklmnopqrstuvwxyz bonjour ";

int getstring (char tab[100]){
  int ii=0;
  char a='a';
  char b='b';
  char c='c';
  char d='d';
  char e='e';
  char f='f';
  char g='g';
  char h='h';
  char i='i';
  char j='j';
  char k='k';
  char l='l';
  char m='m';
  char n='n';
  char o='o';
  char p='p';
  char q='q';
  char r='r';
  char s='s';
  char t='t';
  char u='u';
  char v='v';
  char w='w';
  char x='x';
  char y='y';
  char z='z';
  for(ii=0;ii<50;ii++){
  if ( tab[ii] == 'a') {tab[ii]='b';}     
  else if ( tab[ii] == 'b') {tab[ii]='c';}
  else if ( tab[ii] == 'c') {tab[ii]='d';}
  else if ( tab[ii] == 'd') {tab[ii]='e';}
  else if ( tab[ii] == 'e') {tab[ii]='f';}
  else if ( tab[ii] == 'f') {tab[ii]='g';}
  else if ( tab[ii] == 'g') {tab[ii]='h';}
  else if ( tab[ii] == 'h') {tab[ii]='i';}
  else if ( tab[ii] == 'i') {tab[ii]='j';}
  else if ( tab[ii] == 'j') {tab[ii]='k';}
  else if ( tab[ii] == 'k') {tab[ii]='l';}
  else if ( tab[ii] == 'l') {tab[ii]='m';}
  else if ( tab[ii] == 'm') {tab[ii]='n';}
  else if ( tab[ii] == 'n') {tab[ii]='o';}
  else if ( tab[ii] == 'o') {tab[ii]='p';}
  else if ( tab[ii] == 'p') {tab[ii]='q';}
  else if ( tab[ii] == 'q') {tab[ii]='r';}
  else if ( tab[ii] == 'r') {tab[ii]='s';}
  else if ( tab[ii] == 's') {tab[ii]='t';}
  else if ( tab[ii] == 't') {tab[ii]='u';}
  else if ( tab[ii] == 'u') {tab[ii]='v';}
  else if ( tab[ii] == 'v') {tab[ii]='w';}
  else if ( tab[ii] == 'w') {tab[ii]='x';}
  else if ( tab[ii] == 'x') {tab[ii]='y';}
  else if ( tab[ii] == 'y') {tab[ii]='z';}
  else if ( tab[ii] == 'z') {tab[ii]='a';}
  }

  printf(" %s \n",tab);
}

main(){





  getstring(tab);

}

Hors ligne

#2 Le 26/05/2013, à 22:32

telliam

Re : langage C : Programme qui code une phrase exemple a devient b, b -> c

Un caractère est encodé par une valeur numérique donc il te suffit de faire c = c + 2 pour decaler ton caractère de 2 lettres ( en gérant le cas particulier du 'z')


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#3 Le 26/05/2013, à 22:44

Kail

Re : langage C : Programme qui code une phrase exemple a devient b, b -> c

J'ai trouvé comment faire
#include <stdio.h>

char tab[100] = "abcdez";


int trad(char tab[100]){
  int i;
  for(i=0;tabI!=0;i++){
    tab[i +=2;
  }
  printf(" %s \n",tab);
}

main(){
  trad(tab);
}
 
ça tenait en une quinzaine de lignes ! mais maintenant trouver pour le z

Hors ligne

#4 Le 26/05/2013, à 23:11

Braun

Re : langage C : Programme qui code une phrase exemple a devient b, b -> c

Bonsoir,
1/ Comment gères tu la casse?
2/ Pour un ensemble de vingt six lettres, j'utiliserais un indice défini modulo vingt six (tampon circulaire) ce qui supprime totalement le problème pour "Z".
P.S. Nostalgie, à propos de Z, j'avais à mes débuts commis un traducteur en zorglangue.

Hors ligne

#5 Le 27/05/2013, à 18:47

kuri

Re : langage C : Programme qui code une phrase exemple a devient b, b -> c

Il n y a pas que les majuscules qui peuvent poser probleme :
- Les chiffres
- les caracteres ! : . , ; ...
- les accents (ISO15, UTF-8 ...)

Selon ce qu on veux coder, le programme se complexifie tres vite.
Concernant les majuscules, on peux considerer de tout passer en minuscule automatiquement.

Hors ligne