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
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])
}
...
oups, désolé
char []s;
int i=0
while(s[i] != '$')
{
if((s[i]!='.') && (s[i]!=','))
System.out.print (s[i]);
i=i+1;
}
...
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' ||... || '.' || ',')
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 :