Inscription / Connexion Nouveau Sujet
Niveau calculatrices
Partager :

probleme en programmation c++

Posté par
guit_storm
03-10-07 à 20:24

bonsoir tout le monde
voilà j'ai un petit exo de programmation en c++ , on me demande d'écrire un programme qui demande à lutilisateur d'entrer une suite de caractere terminé par le marqueur $  et qui reaffiche cette suite en éliminant tout caractere n'étant ni une lettre minuscule,ni un point et ni une virgule.
En premier j'ai eu l'idée d'utiliser une boucle while et d'y insérer les conditions et comme instruction j'ai donné: remplacer par NUl tout les caracteres invalidesor ca ne marche pas: voici mon code source ( le pricipal) je vous remercie d'avance!

#include <iostream>
#include <string>
using namespace std;
int main ()
{
    char car;
    cout <<" Entrez une chaine de caractere et terminez par $"<<endl;
    cin.get(car);
   {
        if(((car!='.') && (car!=',') && (car!='$')) && (int(car)>0) && (int(car)<97))
        int(car)='NUL ';
        cout<<car;

   }
else(
cout<<car;
}
   return 0;
}

édit Océane : merci de poser tes questions sur le forum adéquat

Posté par
Eric1
re : probleme en programmation c++ 03-10-07 à 20:30

je connais très mal le C++

mais en JAVA:

char []s;
int i=0
while(s[i] != '$')
{
    if((s[i]!='.') && (s[i]!=','))
        System.out.print (s[i])
}

...

Posté par
Eric1
re : probleme en programmation c++ 03-10-07 à 20:31

oups, désolé
char []s;
int i=0
while(s[i] != '$')
{
    if((s[i]!='.') && (s[i]!=','))
        System.out.print (s[i]);
    i=i+1;
}

...

Posté par
Eric1
re : probleme en programmation c++ 03-10-07 à 20:41

A mon avis, il faut dans le while mettre juste le caractère de fin '$', qui arrete de transmettre tous les caractères une fois celui-ci trouvé, et aussi un repère (quand on arrive au 97 caractère par sécurité)
Et à l'intérieur, un if, qui lui n'arrete pas la poursuite des instructions, mais c'est une sorte de filtre qui séléctionne uniquement les bons caractères.
Note que j'ai mal lu, j'ai cru que les . et , n'étaient pas acceptés ...

(if car='a' || car='b' ||... || '.' || ',')

Posté par
Eric1
re : probleme en programmation c++ 03-10-07 à 21:16

Et à mon avis, ce que tu as écrit ne marchera pas, car lorsqu'il renconter $ il ne s'arrete pas !!!

Posté par
guit_storm
re : probleme en programmation c++ 03-10-07 à 22:58

merci eric je vais réflécir sur cette voie et désolé au modérateur je me suis trompé de forum

Posté par jiju33 (invité)re : probleme en programmation c++ 03-10-07 à 23:54

une solution parmi tant d'autre

#include <cstdlib>
#include <string>
#include <iostream>

using namespace std;

/* renvoit 1 : caractere pas de fin
           0 : caractere de fin
*/
int carac_end_aff(char c){
    //c'est le caractere de fin on le signale
    if(c=='$') return 0;
    //c'est un caractere normale on l'affiche ou non suivant sa valeur et on "signale"
    //que c'est pas la fin
    if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||c=='.'||c==',') cout<<c;
    return 1;
}

int main(int argc, char *argv[])
{
    string s;
    int fin=0,i;
    
    //on boucle tant que l'utilisateur n'a pas entrer une chaine contenant $
    while(!fin){
     cout<<"entrer une chaine . Pour finir mettre un $"<<endl;
     cin>>s;
     cout<<">";
     for(i=0;i<s.length();i++){
      if(!carac_end_aff(s[i])) { fin=1; break;}
     }
     cout<<endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !