begin process at 2012 05 30 14:09:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Programme chaine de caracteres?


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

Programme chaine de caracteres?

lundi 31 janvier 2005 à 19:19:45 | Programme chaine de caracteres?

romca

J'etudie le C++. je dois faire un exercice mais je ne comprend pas mon resultat
le sujet: Un utilisateur doit saisir une phrase que je dois mettre sous forme de 
tableau "tabsaisie".Ensuite je dois comparer ce tableau de caracteres avec un tableau "tablettre" et si il y a égalité je dois afficher le code morse correspondant qui est dans un autre tableau."tabmorse".Si le caractere ne correspond je dois afficher "?".
Est ce quelqu'un pourrait m'aider, j'y ai déjà passer beaucoup de temps.Merci
Le programme :
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
/*declaration des tableaux*/

char tabsaisie[50];
char tablettre[]="ABCDEFGHIJKLMNOPKRSTUVWXYZ.0123456789";
char tabmorse[37][7]={".-","-...","-.-.","-..",".","..-.","--.",
"....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.",
"...","-","..-","...-",".--","-..-","-.--","--..",
//le point et les chiffres
".-.-.-","-----",".----","..---","...--","....-",".....",
"-....","--...","---..","----."};


/*saisie*/
void main()
{
 
 //ou printf("Saisissez le message a coder (50 caracteres au max): \n");
 cout<<"Saisir la phrase de 50 caracteres au maximum:";
 cout<<endl;
 gets(tabsaisie);
 cout<<endl;

/*comparaison et affichage*/ 
 int i=0;
 int j=0;
 
 do
 {
     do
        {
            if(tabsaisie[i]==tablettre[j])//comparaison
           {
               //affichage
              cout<<tabmorse[j][0]<<tabmorse[j][1]<<tabmorse[j][2]<<
              tabmorse[j][3]<<tabmorse[j][4]<<
              tabmorse[j][5]<<tabmorse[j][6]<<endl;
               j++;
            }
            else
            {
             j++;
            }
   
     }while(tablettre[j-1]!='\0');
     cout<<"?";
     i++;
 
 }while(tabsaisie[i-1]!='\0');
}

lundi 31 janvier 2005 à 21:30:05 | Re : Programme chaine de caracteres?

Matt67

Bonsoir,

Code rectifié pour que ca marche mais pas forcement optimisé :

#include <iostream>

using namespace std;

char tabsaisie[50];
char tablettre[]="ABCDEFGHIJKLMNOPKRSTUVWXYZ.0123456789";
char tabmorse[][7]={".-","-...","-.-.","-..",".","..-.","--.",
"....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.",
"...","-","..-","...-",".--","-..-","-.--","--..",
".-.-.-","-----",".----","..---","...--","....-",".....",
"-....","--...","---..","----."};


int main()
{
    cout<<"Saisir la phrase de 50 caracteres au maximum:";
    cout<<endl;
    cin >> tabsaisie;
    cout<<endl;

    /*comparaison et affichage*/
    int i=0, j=0, trouve=0;
 
    while(tabsaisie[i]!='\0')
   {
        j=0;   // On commence par le debut de la chaine de comparaison
        trouve=0;   // Initialisation de temoin pour voir si on a trouve le caractere
        while(tablettre[j]!='\0')
        {
             if(toupper(tabsaisie[i])==tablettre[j]) //comparaison majuscule ou minuscule
             {
                  //affichage
                  cout<<tabmorse[j]<<endl;   // On met le code morse correspondant
                  trouve = 1;      // On signal que l'on a trouve le caractere
                  break;      // On sort
              }
              j++;  
        }
        if(!trouve)   // On a pas trouve
            cout<<"?";
        i++;
   }
   return 0;
}

Bonne soirée,

Matt
lundi 31 janvier 2005 à 22:09:18 | Re : Programme chaine de caracteres?

romca

Je te remercie beaucoup Matt, je crois que j'ai oublié de rajouter une variable et de reinitialiser j à 0...entre autre.
Mais je n'ai pas encore appris la fonction "using namespace std" et je ne comprend pas la  valeur "toupper" que tu as rajoutée?
Est-il est possible de pas prendre en compte les minuscules, c'est a dire si on tape
en minuscule on affichera quand même un "?".
Est-il possible de faire ce programme sans rajouter d'autres fonctions? 
Merci.
romca

mardi 1 février 2005 à 20:20:09 | Re : Programme chaine de caracteres?

Matt67

Bonsoir,

Pas de probleme, si tu veux tu enleves le "toupper" comme ça les minuscules seront remplacées pas "?".

Tu utilisais #include <iostream.h> qui, je crois, est obsolete et qu'il faut utiliser
#include <iostream> et tu utilises le workspace standard (cout, cin, endl ...) ou alors si tu ne mets pas cette ligne alors devant chaque fonction (cout, cin...) il faut que tu rajoutes std:: (std::cout, std::cin, ...)

Matt...
mardi 1 février 2005 à 23:08:03 | Re : Programme chaine de caracteres?

romca

Super!!!
Merci pour tes explications tres claires Matt!


Cette discussion est classée dans : tableau, caracteres, cout, tabsaisie, tablettre


Répondre à ce message

Sujets en rapport avec ce message

Traitement de tableau de caracteres. [ par coyotedef ] Je lit des données a partir d un fichier texte et je classe les caracteres dans un tableau de caracteres. jusque la rien de bien special.mais voila, j Pb de reallocation d'un tableau de chaine de caracteres [ par kobee12 ] J'ai un petit probleme. En effet j'ai un tableau defini de la maniere suivante : char* tab[12];Je charge des chaines de caracteres dans mon tableau. E Déclaration dynamique d'un tableau de chaines de caracteres [ par paulien ] Bonjour à tous !J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation fonction char -> bool [ par destroy2k4 ] salut a tous je suis debutant en programmation et j'ai un petit problemevoila en fait j'ai besoin d'une fonction C qui prend en parametre un tableau d tableau [ par hypermusic ] Bonjour tout le monde, j'ai une question sur les tableaux.. j'ai cerché partout et j'ai pas troiuvé la reponse, donc je vous ecris...comment faire, qu Question sur le fonctionnement de la fonction strcat [ par n_o_u_n_o_u ] Bonjour,je ne comprends pas bien le fonctionnement de la fonction strcat.Dans l'exemple ci-dessous, je n'obtiens qu'une seule sortie (le premier cout) tableau de caracteres [ par infodaoudi ] bonjour,j'ai une classeclass fich{int id;char *fich}je veux initialiser une liste de cette classeFich::Fich(int a){for(int i=0;i{   id=i;   fich= "<fo Traduire long int en tableau de caracteres [ par Shyron ] Salut,Je cherche comment traduire un long int en un tableau de caracteres de même taille que le nombre de chiffres du long int en C++. Corection [ par Hellboy67 ] donc voila cette source est censé trier le tableau par ordre croissant mais il ne fait absolument rien je pense m'etre trompé mais ou ?#include using question à propos du * pour les tableau de caracteres [ par Amanobuo ] Bonjour ! Je m interroge sur l utilisation du * apres le type d une variable j ai compris par quelques tests et de tutos qu'il s agit de l'adresse d'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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,342 sec (3)

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