Compteur de lettre

cobra176
Messages postés
86
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
21 janvier 2009
- 4 févr. 2005 à 10:05
steve_clamage
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
- 11 févr. 2005 à 23:35
Bonjour


je sais qui exister sur ce site un programme qui compte le nombre de lettre de symbole en C


mais voila 2 heures que je le recherche .


quelqu'un sait ou il est ? sinon quelqu'un a un programme en C qui compte le nombre de lettre et de symbole d'une chaine que l'on indique?

a: 1
b:0
.
.
.
z: 0
>:0

merci de votre aide

15 réponses

anarchysniper
Messages postés
65
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
29 septembre 2005
1
4 févr. 2005 à 10:57
Si ce que tu veux, c'est la taille de la chaine de caractères, utilise strlen, déclarée dans string.h



Cependant, attention, cette fonction ne prend pas en compte le dernier caractère si c'est un espace.



L'autre solution est de diviser la taille de ta chaine de caractère par la taille de char.
0
cobra176
Messages postés
86
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
21 janvier 2009

4 févr. 2005 à 11:17
c'est pour la demande précedente que j'ai fait que je demande ça
0
cobra176
Messages postés
86
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
21 janvier 2009

4 févr. 2005 à 11:51
tu peut me donner le code en entier

merci d'avant
0
Atmaweapon
Messages postés
50
Date d'inscription
dimanche 28 décembre 2003
Statut
Membre
Dernière intervention
11 avril 2006
1
4 févr. 2005 à 13:43
int getTaille(char[] chaine){

/* Chaine non instanciée : on retourne -1 */

if(chaine == NULL) return -1;



/* On parcourt toute la chaine jusqu'à tomber sur un caractere 'fin de chaine' spécifié par \0

unsigned int i=0;

while(chaine[i] != '\0') i++;



/* on retourne la taille */

return i;

}
0

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

Posez votre question
anarchysniper
Messages postés
65
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
29 septembre 2005
1
4 févr. 2005 à 13:46
#include

#include <stdlib.h>



using namespace std;



int main()

{

char * chaine ;

int nbdecarac ;



chaine = "Bonjour" ;

nbdecarac = strlen (chaine) ;



cout << nbdecarac << "\n" ; // Sort "9"



system("PAUSE");

return 0;

}
0
anarchysniper
Messages postés
65
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
29 septembre 2005
1
4 févr. 2005 à 13:48
Ha ok je comprends mieux ce que tu voulais mainteant dsl.
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
4 févr. 2005 à 13:48
strlen ne compterait pas le dernier espace, ça vient de sortir...

pour ne pas maintenir 2 variables int, un pointeur suffit:
int GetTaille(char *psz)
{
char *c = psz;
while(*c) c++;
return (c - psz);
}

ciao...
BruNews, MVP VC++
0
anarchysniper
Messages postés
65
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
29 septembre 2005
1
4 févr. 2005 à 14:05
Ah ben si ... erreur de ma part, dsl !
0
steve_clamage
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
5
5 févr. 2005 à 14:58
size_t strlen( const char *s )

{

size_t len = 0;



while( s++ )

++len;

return len;

}
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
5 févr. 2005 à 15:16
manque la deref
while(*s++)....
tout le monde aura compris malgre tout.

ciao...
BruNews, MVP VC++
0
steve_clamage
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
5
5 févr. 2005 à 15:23
oui, merci !
0
HCJarod
Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008
1
11 févr. 2005 à 10:36
Ca ne choc personne ce truc

char * chaine ;
int nbdecarac ;



chaine = "Bonjour" ;


moi je ferai

char * chaine = "Bonjour"

ou

chaine = (char*)malloc(strlen("Bonjour")+1);




Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
11 févr. 2005 à 11:00
ben oui, un pointeur peut se voir affecter nimporte quelle adresse, celle de "Bonjour" aussi bien qu'une autre, je ne vois pas le malaise.

ciao...
BruNews, MVP VC++
0
HCJarod
Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008
1
11 févr. 2005 à 11:18
S'il pointe sur une espace alloué

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
steve_clamage
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
5
11 févr. 2005 à 23:35
non ca ne pause absolument aucun probleme, cependant l'écriture



char *str;



str = "hello";



est obselète car str n'est pas initialisé à la déclaration, et la norme
conseil le const sur les chaines constantes (l'écriture peut faire
planter lee programme).



donc il vaut mieux écrire :



const char *str = "hello";



chaine =
(char*)malloc(strlen("Bonjour")+1); à remplacer par strdup, mais
inutile dans ce cas (de même que le cast de la valeur retour de
malloc er l'appel de strlen sur une chaine constante)
0