Un petit pb de fonction en c++
J'ai un problème avec les fonctions je ne comprend pas comment ça marche.
je doit faire un programme qui me compte les caractères d'un texte je vois bien comment je doit faire mais je ne sait pas comment je doit l'ecrire. J'arrive pas à appeler ma fonction.
SVP aidez moi
merci d'avance
Configuration: Windows XP Internet Explorer 6.0
- Un petit pb de fonction en c++
- Fonction si ou - Guide
- Trier du plus petit au plus grand excel - Guide
- Ème en petit ✓ - Forum LibreOffice / OpenOffice
- Petit point vert snap - Forum Snapchat
- Petit 3 clavier ✓ - Forum Bureautique
44 réponses
- 1
- 2
- 3
Le problème posé porte sur l'écriture d'un programme qui compte les caractères d'un texte et, potentiellement, le nombre de mots, en C++ ou dans un environnement compatible. Plusieurs répondants recommandent d'utiliser getline pour saisir le texte puis text.length() pour le nombre de caractères, avant d'envisager un décompte des mots via une passe sur la chaîne. D'autres contributions proposent des variantes, comme compter les mots en détectant les séparateurs (espaces ou retours) avec des boucles et isalpha, ou tester des approches basées sur des fichiers. Une réponse consolidée présente un exemple clair utilisable : lire le texte avec getline, mesurer les caractères par length et parcourir la chaîne pour estimer les mots, puis afficher les résultats.
int deb, l;
cout << "Entrer le nombre de caractere que vous voulez pour une ligne :" ;
cin >> l;
deb = 0;
i = l;
while (i < len)
{
while ((i>deb) && (text[i] != ' ')) i--;
if (i>deb)
{
text[i]=10;
deb = i;
i += l;
}
}
std::cout << "phrase découpé = " << std::endl << text << std::endl;
#include <iostream>
#include <string>
using namespace std;
string texte;
int len;
cout << "Veuillez entrer votre texte." << endl;
cin >> texte;
cout << "Le nombre de caractères est:" << texte.size() << endl;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question*/Compter les caractères */
#include <iostream>
#include <string> */ bibliothèque pour la fonction len*/
using namespace std;
main {
string texte;
int len = texte.size();
cout << "Veuillez entrer votre texte." << endl;
cin >> texte;
cout << "Le nombre de caractères est:" << len << endl;
}
mais si qqn pourrai me donner un coup de main pour faire un programme qui calcul le nombre de mot se serait vraiment gentille
je ne sais vraiment pas comment faire
si j'ecrit Bonour tout le monde il va afficher 7 il compte que Bonjour.
Donc si qqn pourrait me donner une autre solution ou expliquer comment faire pour faire un programme avec des bouble (enfaite je ne voit pas quand je doit incrementer mon compteur)
merci d'avance
int main() {
char texte[50];
cout << "Veuillez entrer votre texte." << endl;
cin.getline(texte,50);
int len = strlen(texte);
cout << "Le nombre de caractères est : " << len << endl;
}
et moi il fau que ça marche pour un nbr inconnu de caractere
http://fr.wikibooks.org/wiki/Programmation_C++_(d%C3%A9butant)/La_classe_string
qui répond à la question, donc le code correct est :
int main()
{
string texte;
cout << "Veuillez entrer votre texte." << endl;
getline(cin,texte);
int len = texte.length();
cout << "Le nombre de caractères est : " << len << endl;
}
L'utilisation de "std::cin >> text;" pour récupérer une phrase complète ne marche pas (et donc la valeur que tu stockes dans len est fausse), il faut utiliser "getline(cin,text);"
cf le lien que j'ai donné plus haut.
#include <iostream>
#include <string>
extern "C"{
#include <ctype.h>
}
int main(){
// Lecture
std::string text;
std::cout << "texte ?";
std::cin >> text;
// Nombre de caracteres
std::size_t len = text.length()
std::cout << "nombre de caractères = " << len << std::endl;
// Nombre de mots
unsigned int nb_words=0;
for(unsigned int i=0;i<len;++i){
// avancer jusqu'au prochain mot
while(!isalpha(text[i] && i<len) ++i;
// on a atteint la fin de la chaine
if(i>=len) break;
// on a atteint un nouveau mot
// avancer jusqu'à la fin du mot
++nb_words;
while(isalpha(text[i] && i<len) ++i;
}
std::cout << "nombre de mots = " << nb_words<< std::endl;
return 0;
}
Ou truc dans le genre... Là j'ai pas de compilateur sous la main...
Bonne chance
extern "C"{
#include <ctype.h>
merci bcp
Bonne chance
pour les caractere je fait comment, je ne sais pas quand je doit incrementé le compteur.
tant que car = toutes les lettres espaces etc, etc. Je peut ecrire ça comment????
et pour les mots je peu faire un truc comme ça:
#include <iostream>
using namespace std;
int main{
int nb-mots;
int mots;
char texte;
cout<<"votre texte"<<endl;
cin>>texte;
nb-mots=0;
mots=0;
while (mots!='/n'){
if mots = ' '{
nb-mots=nb-mots+1;
}
else
mot=mot+1;
}
cout<<"il y a "<<nb-mots<<"mots"<<endl;
}
mais ça ne marche pas donc si vous pouvez m'aidez
merci encore bcp de votre aide
int main()
{
// Lecture
std::string text;
std::cout << "texte ?";
getline(cin,text);
// Nombre de caracteres
std::size_t len = text.length();
std::cout << "nombre de caractères = " << len << std::endl;
// Nombre de mots
unsigned int nb_words=0;
for(unsigned int i=0;i<len;i++)
{
// avancer jusqu'au prochain mot
while ((isalpha(text[i]) && i<len)) i++;
// on a atteint la fin d'un mot ou de la chaine
if (i<=len) nb_words++;
}
std::cout << "nombre de mots = " << nb_words<< std::endl;
return 0;
}
bool my_isalpha(char lettre)
{
return (((lettre >= 'A') && (lettre <= 'Z')) || ((lettre >= 'a') && (lettre <= 'z')));
}
int my_length(string phrase)
{
int i=0;
while (phrase[i] != 0) i++;
return i;
}
extern "C"{
#include <ctype.h>
car je voit pas comment l'expliquer clairement en un commentaire simple
bonjour tout le monde. ca va bien? il compte 8 il compte le ? comme un mot. Je doit modifier quoi dans le programme pour qu'il ne compte pas comme un mot le ? , ; : !
Et sinon je voudrait qu'a un nombre de caractere donné on reécrit le texte et à x caractere on met un retour à la ligne .
j'ai fait ça:
#include <iostream>
#include <string>
int main()
{
// Lecture
string text;
int l;
cout << "texte ?";
getline(cin,text);
cout<<"Entrer le nombre de caractere que vous voulez pour une ligne?<<endl;
cin>>l;
// Nombre de caracteres
size_t len = text.length();
cout << "nombre de caractères = " << len <<endl;
// Nombre de mots
unsigned int nb_words=0;
for(unsigned int i=0;i<len;i++)
{
// avancer jusqu'au prochain mot
while ((isalpha(text[i]) && i<len)) i++;
// on a atteint la fin d'un mot ou de la chaine
if (i<=len) nb_words++;
}
cout << "nombre de mots = " << nb_words<<endl;
return 0;
if (len>l){
cout<<len=0;len<l;len ++<<endl;
}
else
cout<<size_t len<<endl;
}
mais ça ne fonctionne pas si vous pouvez me donner un peit coup de main.
- 1
- 2
- 3