Caractères dissocès en C++ ?

azerty0 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Bon voila, je cherche a créer un programme qui me transformerait une chaîne de caractère en une autre.
en gros, un caractère attribué a chaque caractère.

Genre, je tape "ae", cela maffiche "43" les attribus peuvent donc être caractères ou numériques.

Le problème, cest pas le programe en lui même, cest faire en sorte que le programme me lise les caractères entrés dans cin un par un, et les traduise un par un...

Jespère que vous saurez maider.

Azerty
A voir également:

2 réponses

Marc
 
Bonjour,

En admettant que tu ai une fonction traduireCaractere() :

char chaine [50]; // declaration de la saisie
cin >> chaine; // saisie

// pour chaque caractere de la saisie
for (int i=0;chaine[i]!='\0';i++)
// on affiche la traduction
cout<<traduireCaractere(chaine[i]);



En espèrant t'avoir aidé,
bonne journée
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Marc je pense que tu ne réponds pas vraiment à la question :

Le problème, cest pas le programe en lui même, cest faire en sorte que le programme me lise les caractères entrés dans cin un par un, et les traduise un par un...


Personnellement je ne sais pas trop comment faire car quand tu lis sur std::cin il attend à cahque fois un retour chariot pour interpréter la saisie, je ne sais pas le faire à la volée :s

Voici un exemple de code pour le reste de l'énoncé :
#include <iostream>
#include <string>
#include <sstream>
#include <map>

typedef std::map<char,char> traducteur_t;

void init_traducteur(traducteur_t & traducteur){
    traducteur['a'] = '4';
    traducteur['e'] = '3';
}

char traduire(const traducteur_t & traducteur,char c){
    traducteur_t::const_iterator fit = traducteur.find(c);
    if (fit == traducteur.end()) return '?'; // caractère inconnu
    return fit->second;
}

std::string traduire(const traducteur_t & traducteur,const std::string & s){
    const std::size_t len = s.length();
    std::ostringstream oss;
    for(std::size_t i=0;i<len;++i) oss << traduire(traducteur,s[i]);
    return oss.str();
}

int main(){
    traducteur_t traducteur;
    init_traducteur(traducteur);

    std::string saisie;
    std::cout << "texte ?" << std::endl;
    std::cin >> saisie;
    std::cout << traduire(traducteur,saisie) << std::endl;

    return 0;
}

ce qui donne :
texte ?
aeeeaaaeezzaeea
433344433??4334

Bonne chance
0