Caractères dissocès en C++ ?
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
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:
- Caractères dissocès en C++ ?
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- Caracteres speciaux - Guide
- Exemple de mot de passe à 8 caractères - Guide
2 réponses
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
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
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é :
ce qui donne :
Bonne chance
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