Chaine de caractére

Fermé
nour - 8 avril 2010 à 19:48
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 9 avril 2010 à 21:39
Quelqu'un peut m'aider pr faire ce exo :

Exo : écrire 1 programme qui c le nombre2 mots d'une phrase qui est donnée par une constante au début du programme.
1 -on décide que le nombre2 mots est le nombre d'espace +1.
2-reprendre 1 , on décide que plusieurs caractères espace qui se suivent sont équivalents à 1 seul .
3- reprendre 2, on décide qu'un espace en début ou en fin de phrase n'est pas à considérer.

merci d'avance
A voir également:

10 réponses

tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
8 avril 2010 à 19:53
Tu n'arrive même pas à recopier l'énoncé de ton exercice sans faire de fautes ? C'est devenu complètement incompréhensible. Comment veux tu que l'on t'aide dans ces conditions ?
0
Lord Shoedsackovskaïa Messages postés 163 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 19 novembre 2013 13
8 avril 2010 à 19:54
En quel langage veux-tu que l'on te programmes-ça ?
Si tu dois faire ce programme pour des cours, je ne vais pas te donner la solution, mais je peux te donner des conseils ;)
0
dsl voici l'énoncé .

Exo 2 : écrire 1 programme qui affiche le nombre de mots d'une phrase qui est donnée par une constante au début du programme.
1 -on décide que le nombre2 mots est le nombre d'espace +1.
2-reprendre 1 , on décide que plusieurs caractères espace qui se suivent sont équivalents à 1 seul .
3- reprendre 2, on décide qu'un espace en début ou en fin de phrase n'est pas à considérer.
0
le language est le c++.
j'aimrai b1 que vous me donnez des conseils pour que je puisse ecrire mon programme.

merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
8 avril 2010 à 20:46
Je comprends beaucoup mieux !

Déjà il te faut faire un peu d'algorithmique pour déterminer l'algorithme de calcul.

Ensuite il faut voir comment implémenter celà.

Il va y avoir du comptage de mots, ou de blancs, donc il va y avoir quelque part une boucle de comptage. C++, donc pense tout de suite à une boucle for( ; ; ) { }

Il va y avoir de la gestion de chaîne de caractères. En C++ tu peux utiliser les chaines basiques char *, mais ce serait mieux d'implémenter une classe "chaine de caractère" capable de faire différentes opérations, par exemple compter des blancs, fusionner des blancs, ...

Voilà pour te lancer !
0
je vais éssayer toute seule et on reste en contacte.
a+++
merci
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
8 avril 2010 à 21:58
Bonjour,
Sinon au lieu d'utiliser char* tu peux utiliser la classe string qui contient déjà pas mal d'opération ;-).

Cdlt,
0
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
8 avril 2010 à 22:48
Bien sûr mais Nour apprendrait plus en écrivant elle même la classe string ! C'est pour cela que je n'avais parlé que de char * qu'elle pourrait intelligemment encapsuler dans une classe idoine !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
8 avril 2010 à 23:07
Je suis d'accord avec toi. Mais si c'est pour apprendre, autant programmer en C. Puisque faire tout ce qu'il a demandé sans utiliser string, ça sera du C (enfin presque).
0
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
9 avril 2010 à 07:27
non si elle réécrit la classe string, le seul point où il y avait quelque chose à apprendre en C++
0
Lord Shoedsackovskaïa Messages postés 163 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 19 novembre 2013 13
9 avril 2010 à 07:34
Désolé pour cette fois j'ai Code::Blocks qui déconne et je ne suis pas un pro en C++
0
#include<stdio.h>
void main ()
{char ch[15];
int i,j=0;
for(i=0;i<=15;i++)
{
if(ch[i]=='/0')
j++}
for(i=0;i<15;i++)
{if (ch[i]=='/0')
while(ch[i]=='/0')
c tous ce que j'ai pu .
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
9 avril 2010 à 21:39
Bonjour,

Tout d'abord, ton code ce n'est pas du C++ mais du C. En C++, on utilise iostream.
Donc, on va continuer plutôt sur du C.
Ensuite, ce n'est pas void main(), le prototype de main sans argument mais : int main(void)

Ensuite, je te conseille dans ce programme de faire 3 fonctions (une fonction par exercice).
Par exemple :
#include <stdio.h>

int compte1(const char* chaine) {
    /*je compte le nombre d'espace et j'augmente de 1*/
    int i;
    int res=0;
    for(i=0; chaine[i]!='\0'; i++) {
         ...
    }
    return res+1;
}

int compte2(const char* chaine) {
    ...
}

int compte3(const char* chaine) {
    ...
}

int main(void) {
     const char* chaine = "voici une phrase longue";

     printf("1ere méthode : il y a %d mots\n",compte1(chaine));
     printf("1ere méthode : il y a %d mots\n",compte2(chaine));
     printf("1ere méthode : il y a %d mots\n",compte3(chaine));

     return 0;
}

Voilà, je t'ai donné la structure. A toi de remplir ;-)))
0