Bonjour, je souhaite écrire à l'envers une phrase. Aucune erreur lors
de la compilation g++ windows. Le programme ne marche pas.voila le
source :
#include <stdio.h>
#include <string.h>
main()
{
char phrase[100];
int taille ;
char a ;
printf("Entrer la phrase à inverser.\n");
gets(phrase) ;
taille = strlen (phrase) ;
for (int i=taille ;i<1;i--) {
if (i==taille) continue ; //pour éviter le caractere de fin de
ligne
printf("%s",phrase[i]) ;
//putchar (phrase[i]) ;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred
Bonjour, je souhaite écrire à l'envers une phrase. Aucune erreur lors de la compilation g++ windows. Le programme ne marche pas.voila le source :
#include <stdio.h> #include <string.h>
main() { char phrase[100]; int taille ; char a ;
printf("Entrer la phrase à inverser.n"); gets(phrase) ; taille = strlen (phrase) ; for (int i=taille ;i<1;i--) { if (i==taille) continue ; //pour éviter le caractere de fin de ligne printf("%s",phrase[i]) ; //putchar (phrase[i]) ;
} // a = getchar;
return 0; }
Salut,
J'ai modifié le programme de la façon suivante : (voir la boucle for ainsi que printf("%c",...) au lieu de printf("%s",...).
#include <stdio.h> #include <string.h>
main() { char phrase[100]; int taille ; char a ;
printf("Entrer la phrase à inverser.n"); gets(phrase) ; taille = strlen (phrase) ; for (int i=taille ; i>=0; i--) { if (i==taille) continue ; //pour éviter le caractere de fin de ligne
printf("%c",phrase[i]) ; //putchar (phrase[i]) ;
} getchar();
return 0; }
Dans la boucle for j'ai mis i>=0 car la seconde expression d'une boucle for signifie "tant que".
Esope reste ici et se repose esoper es te ici etser eposE
-- Fred40
http://cerbermail.com/?7WWAvXv1hV
Bonjour, je souhaite écrire à l'envers une phrase. Aucune erreur lors
de la compilation g++ windows. Le programme ne marche pas.voila le
source :
#include <stdio.h>
#include <string.h>
main()
{
char phrase[100];
int taille ;
char a ;
printf("Entrer la phrase à inverser.n");
gets(phrase) ;
taille = strlen (phrase) ;
for (int i=taille ;i<1;i--) {
if (i==taille) continue ; //pour éviter le caractere de fin de
ligne
printf("%s",phrase[i]) ;
//putchar (phrase[i]) ;
}
// a = getchar;
return 0;
}
Salut,
J'ai modifié le programme de la façon suivante :
(voir la boucle for ainsi que printf("%c",...) au lieu
de printf("%s",...).
#include <stdio.h>
#include <string.h>
main()
{
char phrase[100];
int taille ;
char a ;
printf("Entrer la phrase à inverser.n");
gets(phrase) ;
taille = strlen (phrase) ;
for (int i=taille ; i>=0; i--) {
if (i==taille) continue ; //pour éviter le caractere de fin de ligne
printf("%c",phrase[i]) ;
//putchar (phrase[i]) ;
}
getchar();
return 0;
}
Dans la boucle for j'ai mis i>=0 car la seconde expression d'une
boucle for signifie "tant que".
Esope reste ici et se repose
esoper es te ici etser eposE
Bonjour, je souhaite écrire à l'envers une phrase. Aucune erreur lors de la compilation g++ windows. Le programme ne marche pas.voila le source :
#include <stdio.h> #include <string.h>
main() { char phrase[100]; int taille ; char a ;
printf("Entrer la phrase à inverser.n"); gets(phrase) ; taille = strlen (phrase) ; for (int i=taille ;i<1;i--) { if (i==taille) continue ; //pour éviter le caractere de fin de ligne printf("%s",phrase[i]) ; //putchar (phrase[i]) ;
} // a = getchar;
return 0; }
Salut,
J'ai modifié le programme de la façon suivante : (voir la boucle for ainsi que printf("%c",...) au lieu de printf("%s",...).
#include <stdio.h> #include <string.h>
main() { char phrase[100]; int taille ; char a ;
printf("Entrer la phrase à inverser.n"); gets(phrase) ; taille = strlen (phrase) ; for (int i=taille ; i>=0; i--) { if (i==taille) continue ; //pour éviter le caractere de fin de ligne
printf("%c",phrase[i]) ; //putchar (phrase[i]) ;
} getchar();
return 0; }
Dans la boucle for j'ai mis i>=0 car la seconde expression d'une boucle for signifie "tant que".
Esope reste ici et se repose esoper es te ici etser eposE
-- Fred40
http://cerbermail.com/?7WWAvXv1hV
Greg
On 10 Jan 2005 09:52:36 -0800 (totof) wrote:
Bonjour, je souhaite écrire à l'envers une phrase. Aucune erreur lors de la compilation g++ windows. Le programme ne marche pas.voila le source :
[snip]
Proposition dans un style plus "C++" (ou le jeu des 42 différences) :
#include <iostream> #include <string>
int main(void) { std::string input;
std::cout << "Entrez la phrase à inverser : "; getline(std::cin, input);
std::string::const_iterator start = input.begin(); std::string::const_iterator end = input.end();
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément la programmation, jette aux orties les entrées/sorties de style 'C', et t u feras des programmes qui passeront mieux ici :)
Greg
On 10 Jan 2005 09:52:36 -0800
hbvfof@yahoo.fr (totof) wrote:
Bonjour, je souhaite écrire à l'envers une phrase. Aucune erreur lors
de la compilation g++ windows. Le programme ne marche pas.voila le
source :
[snip]
Proposition dans un style plus "C++" (ou le jeu des 42 différences) :
#include <iostream>
#include <string>
int main(void)
{
std::string input;
std::cout << "Entrez la phrase à inverser : ";
getline(std::cin, input);
std::string::const_iterator start = input.begin();
std::string::const_iterator end = input.end();
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément
la programmation, jette aux orties les entrées/sorties de style 'C', et t u feras
des programmes qui passeront mieux ici :)
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément la programmation, jette aux orties les entrées/sorties de style 'C', et t u feras des programmes qui passeront mieux ici :)
Greg
Sylvain Togni
#include <iostream> #include <string>
int main(void) { std::string input;
std::cout << "Entrez la phrase à inverser : "; getline(std::cin, input);
std::string::const_iterator start = input.begin(); std::string::const_iterator end = input.end();
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément la programmation, jette aux orties les entrées/sorties de style 'C', et tu feras des programmes qui passeront mieux ici :)
Tant qu'à utiliser la STL, autant l'utiliser jusqu'au bout ;-)
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément
la programmation, jette aux orties les entrées/sorties de style 'C', et tu feras
des programmes qui passeront mieux ici :)
Tant qu'à utiliser la STL, autant l'utiliser jusqu'au bout ;-)
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément la programmation, jette aux orties les entrées/sorties de style 'C', et tu feras des programmes qui passeront mieux ici :)
Tant qu'à utiliser la STL, autant l'utiliser jusqu'au bout ;-)
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément la programmation, jette aux orties les entrées/sorties de style 'C', et tu feras des programmes qui passeront mieux ici :)
Tant qu'à utiliser la STL, autant l'utiliser jusqu'au bout ;-)
int main() { std::string input; std::cout << "Entrez la phrase à inverser : "; std::getline(std::cin, input); std::reverse(input.begin(), input.end()); std::cout << input << std::endl; }
Plus proche à son code original (qui sortait la chaîne à l'inverse sans le modifier -- pas que je crois que ça fasse une différence ici) :
int main() { std::cout << "Entrez la ligne à inverser : " ; std::string line ; if ( ! std::getline( std::cin, line ) ) { // ??? traitement d'erreur... } else { std::copy( line.rbegin(), line.rend(), std::streambuf_iterator<char>( std::cout ) ) ; } return EXIT_SUCCESS ; }
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Sylvain Togni wrote:
[...]
Conseil de débutant : n'hésite pas à abuser de la STL, ça
simplifie énormément la programmation, jette aux orties les
entrées/sorties de style 'C', et tu feras des programmes qui
passeront mieux ici :)
Tant qu'à utiliser la STL, autant l'utiliser jusqu'au bout ;-)
Conseil de débutant : n'hésite pas à abuser de la STL, ça simplifie énormément la programmation, jette aux orties les entrées/sorties de style 'C', et tu feras des programmes qui passeront mieux ici :)
Tant qu'à utiliser la STL, autant l'utiliser jusqu'au bout ;-)
int main() { std::string input; std::cout << "Entrez la phrase à inverser : "; std::getline(std::cin, input); std::reverse(input.begin(), input.end()); std::cout << input << std::endl; }
Plus proche à son code original (qui sortait la chaîne à l'inverse sans le modifier -- pas que je crois que ça fasse une différence ici) :
int main() { std::cout << "Entrez la ligne à inverser : " ; std::string line ; if ( ! std::getline( std::cin, line ) ) { // ??? traitement d'erreur... } else { std::copy( line.rbegin(), line.rend(), std::streambuf_iterator<char>( std::cout ) ) ; } return EXIT_SUCCESS ; }
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jean-Noël Mégoz
"totof" a écrit dans le message de news:
taille = strlen (phrase) ; for (int i=taille ;i<1;i--) { if (i==taille) continue ; //pour éviter le caractere de fin de ligne
Plutôt qu'insérer un test exécuté inutilement à chaque boucle du for, pourquoi ne pas initialiser taille à (strlen(phrase)-1), ou encore initialiser i à (taille-1) ? Je me doute que l'optimisation n'est pas le soucis de ce petit programme, mais quand même... ;)
J.No.-les-vieux-réflexes
"totof" <hbvfof@yahoo.fr> a écrit dans le message de
news:cb319a19.0501100952.1da70df5@posting.google.com...
taille = strlen (phrase) ;
for (int i=taille ;i<1;i--) {
if (i==taille) continue ; //pour éviter le caractere de fin de
ligne
Plutôt qu'insérer un test exécuté inutilement à chaque boucle du for,
pourquoi ne pas initialiser taille à (strlen(phrase)-1), ou encore
initialiser i à (taille-1) ?
Je me doute que l'optimisation n'est pas le soucis de ce petit programme,
mais quand même... ;)
taille = strlen (phrase) ; for (int i=taille ;i<1;i--) { if (i==taille) continue ; //pour éviter le caractere de fin de ligne
Plutôt qu'insérer un test exécuté inutilement à chaque boucle du for, pourquoi ne pas initialiser taille à (strlen(phrase)-1), ou encore initialiser i à (taille-1) ? Je me doute que l'optimisation n'est pas le soucis de ce petit programme, mais quand même... ;)