Compter des caractere en c++

billy -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour!
j'ai ecris un programme qui compte les caractère.
le probleme c'est que j'arrive pas a comter les caractere.
ca donne,

#include <iostream>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{

char *texte[10000];
double nb_de_caractere=strlen(texte);

cout<<"tapez un texte et on vous dira combien de caractère vous avez tapez"<<endl;
cin>>texte;
cout<<"dans ["<<texte<<"]"<<endl;
cout<<"il ya "<<nb_de_caractere<<" de caractere"<<endl;

system("PAUSE");
return 1;

}

ma question c'est pourquoi il compte pas?

meci d'avance
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. mrud Messages postés 216 Statut Membre 100
     
    salut,
    ça , ça fonctionne sous devcpp

    #include <iostream>
    #include <stdlib.h>
    #include <string.h>

    using namespace std;

    int main(int argc, char *argv[])
    {

    char texte[10000];
    int nb_de_caractere;

    cout<<"tapez un texte et on vous dira combien de caractère vous avez tapez"<<endl;
    cin>>texte;
    nb_de_caractere=strlen(texte); /*là il peut compter car texte n'est plus vide*/
    cout<<"dans ["<<texte<<"]"<<endl;
    cout<<"il ya "<<nb_de_caractere<<" de caractere"<<endl;

    system("PAUSE");
    return 1;

    }

    [EDIT] pour répondre à ta question pourquoi il ne peut pas compter je peux juste te dire (car je ne fais pas de c++) que si tu veux récupérer le nombre de caractères il faut déja qu'ils soient tappés et donc qu'ils soient dans "text[10000]" sinon tu auras comme résultat zéro:0 car strlen va compter ton text[10000] avant qu'il soit rempli -> il sera vide!
    1
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    déjà tu fait du C++ donc :
    #include <string>
    pas besoin du .h
    quitte à inclure string autant l'utiliser !
    std::string texte;
    cin>>texte;
    cout<<"taille : "<<texte.size()<<endl;
    0