begin process at 2012 02 12 12:32:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

remplacer une lettre par une autre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

remplacer une lettre par une autre

mardi 8 novembre 2005 à 16:56:09 | remplacer une lettre par une autre

shadow1779

Membre Club
bonjour,

j'vai prendre un exemple simple pour illustrer mon programme,

je fais un gets(buffer); et ensuite un printf("%s",buffer); admettons que j'ai tapé "a" lors du gets, je veux que la chaine buffer ai en fait "d" par exemple comment puis je faire ,??
mardi 8 novembre 2005 à 17:00:16 | Re : remplacer une lettre par une autre

jul39dole

tu écris buffer[0]='d'; entre tes deux instructions. Mais je n'ai peut être pas compris toute la finesse de la question...
mardi 8 novembre 2005 à 17:06:04 | Re : remplacer une lettre par une autre

shadow1779

Membre Club
en gros c'est pour faire un systeme de cryptage tout basique, qui serait d'inverser des lettre ou les remplacer par des caracteres speciaux,

genre a = r
           b = c ...
.
mardi 8 novembre 2005 à 19:20:12 | Re : remplacer une lettre par une autre

Galmiza

Tu te fais un tableau de correspondance.

struct SCorrespondance:
{
 char cCaractere;
 char cRemplaçant;
}

Ensuite tu analyses caractere par caractere ta chaine et tu remplaces si le caractere a une correspondance.
Attention de ne pas faire 2 remplacement.
Il te faut un tableau de la meme taille que la chaine de caractere pour savoir lesquels tu as remplacé.

mercredi 9 novembre 2005 à 16:31:31 | Re : remplacer une lettre par une autre

marik7335

Membre Club
tu parcours ta chaine et grâce une table de correspondance tu remplaces simplement à l'index adéquat.
tu peux coder une structure du type :

en reprenant ce qu'a dit Galmiza tu codes une structure de la manière suivante :

struct SCorrespondance:
{
  char cCaractere;
  char cRemplaçant;
}

puis un tableau de struct SCorrespondance de 26 éléments : struct SCorrespondance lettres[26]; //pour les 26 lettres

pour trouver l'index de la lettre :
tu utilises un masque qui te reverra 1 pour A, 2 pour B etc ... (pour celà il faut mettre à zero les bits à gauche)
tu peux l'implémenter de la manière suivante :  ( (int) lettre & 0x0F )

exemple pour A : code ASCII (65) :
1000 0001 et 0000 1111 = 0000 0001

int indice = ( (int) lettre & 0x0F );
lettres[code-1] pour trouver la lettre;
samedi 12 novembre 2005 à 03:18:22 | Re : remplacer une lettre par une autre

Poufine

Je viens de retrouver mon premier programme (qui n'est pas si vieux que ca ):
en esperant que ca t'aidera....


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

int main(int argc,char **argv) {
FILE *fileSource, *fileDest;
 char c;
  int length;
  if (argc != 4) {
    printf("Usage : prog fileSource fileDest 1/0 \n");//1 pour coder 0 pour decoder ou l'inverse comme tu veux
    exit(-1);
  }


char source[]="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ'";
char code[]  ="qwertyu iopasdfghjklzxcvbnmPOIUYTREWQLK'JHGFDSAMNBVCXZ";


  fileSource = fopen(argv[1],"r");
  fileDest   = fopen(argv[2],"w");

  if (!(fileSource && fileDest)) {
  fprintf(stderr,"Probleme d'ouverture de fichier\n");
  exit(-1);
 }

if(atoi(argv[3]))
{
 while((length = fread(&c,sizeof(char),1,fileSource)) != 0) {
  int i=0;
   while(c!=source[i] && i<strlen(source))
   i++;
  
   char d;
   if(i!=strlen(code))
    d=code[i];
   else
    d='!';
  fwrite(&d,sizeof(char),1,fileDest);
 }
}
else
{
 while((length = fread(&c,sizeof(char),1,fileSource)) != 0) {
  int i=0;
   while(c!=code[i] && i<strlen(code))
   i++;

   char d;
   if(i!=strlen(code))
    d=source[i];
   else
    d='!';
  fwrite(&d,sizeof(char),1,fileDest);
 }
}
 fclose(fileSource);
 fclose(fileDest);

 printf("\tUn fichier codé\n");

return 0;
}



Cette discussion est classée dans : buffer, exemple, remplacer, lettre, gets


Répondre à ce message

Sujets en rapport avec ce message

Manipulation de grands fichiers [ par jb60 ] Bonjour, c'est encore moi ;-)Je me demande si lorsque l'on manipule un grand fichier (plusieurs Mo, voir même plusieurs Go) on peut mettre toutes les argc et argv[] [ par shadow1779 ] bon voila, qqn pourrait t'il mexpliquer comment on fait avec argv[] afin par exemple de ne selectionner que le deuxieme mot dans une chaine de caracte gets() marche plus apres fermeture de thread [ par dyroj ] bonjour, est-il normale que fgets() block quand on lapele plus dune foi, //envoi en mode tcp WINA Remplacer une lettre par une autre lettre [ par ScorpionTiti ] Salut!Je voudrais dans un de mes programmes en C remplacer une lettre par une autre lettre dans une chaine de caractères contenu dans un fichier .txt. Remplacer un filtre par un autre sous directshow [ par bigzooloo ] Bonjour,j'aimerais remplacer un filtre (par exemple, un compresseur video comme DivX) par un autre (par exemple XviD) en cours d'execution du programm reseau de hopfield [ par amira22 ] Salut J?ai vu le programme de hopfield programmé en c++ et l?exemple traité de « code postaux » sur :http://www.cppfrance.com/code.aspx?ID=19075je sui Comment forcer le RTS pour une liaison RS232 [ par ancat ] Bonjourje viens de faire un petit prog (grandement inspire de sources du site) mais je ne saisis pas trop le controle du RTS.Celui ci est-il traite pa Problème pour un pendu [ par minet03 ] Bonjour tout le monde, je suis débutant et je tente de faire un pendu. Mais voilà, y a plin d'erreur que je ne comprend pas. Donc si qqu pouvais m'aid prog d'exemple openGL + SDL [ par Arnaud16022 ] Hi!je cherche une source qui montre comment créer une fenetre, détecter les touches du clavier et les mouvements de la souris ... avec la SDL, ET d'af


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales