"Calcul " d'une chaîne de caractère en c++

Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
16 septembre 2019
- - Dernière réponse : [Dal]
Messages postés
5210
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 septembre 2019
- 16 sept. 2019 à 16:18
Bonjour,
Je cherche depuis un certain temps comment pouvoir "calculer" le nombre de lettres qu'il y a dans une expression en C++.
J'ai une variable et je souhaite savoir combien de lettre il y a dedans.
Merci a tous ceux qui m'aideront !
Un novice en programmation


Configuration: Windows / Chrome 76.0.3809.132
Afficher la suite 

3 réponses

Messages postés
8529
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 septembre 2019
423
0
Merci
bonjour, quel est le type de ta variable?
Commenter la réponse de yg_be
Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
16 septembre 2019
0
Merci
c'est un tabeau:
"
char prenom[5000]:
"
yg_be
Messages postés
8529
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 septembre 2019
423 -
il peut donc contenir 5000 caractères. peux-tu préciser ta question?
Anat94
Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
16 septembre 2019
> yg_be
Messages postés
8529
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 septembre 2019
-
oui, mais c'est car l'utilisateur rentre un prénom de je ne sais quelle taille....du coup il me faut un tableau assez grand.
et je souhaiterais savoir le nbre de caractère renté
Commenter la réponse de Anat94
Messages postés
5210
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 septembre 2019
800
0
Merci
Salut Anat94,

Si tu programmes en C++, il est étrange que tu veuilles utiliser un type tableau de char pour stocker des chaînes de caractères (ce qui est une pratique du C), alors que le C++ te permet d'utiliser l'objet string dont l'usage n'est en théorie limité que par la taille de la mémoire de la machine ou les limitations de l'implémentation.

1.

Si, pour une bonne raison, tu dois utiliser un tableau de char, tu peux utiliser la fonction
strlen()
de la bibliothèque standard du C pour effectuer le décompte des caractères constituant la chaîne dans le tableau prenom.

http://www.cplusplus.com/reference/cstring/strlen/

En amont, il te faudra t'assurer que l'utilisateur ne tape pas 5000 caractères ou plus, selon la façon dont tu récupères la saisie.

2.

Si tu n'as aucune raison valable d'utiliser un tableau de char pour stocker la chaîne, alors tu devrais utiliser l'objet std::string

http://www.cplusplus.com/reference/string/string/

qui te donne accès aux méthodes
length()
(ou
size()
) qui permettent d'obtenir la taille, en octets, de la chaîne contenue dans cet objet.



Dal
Anat94
Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
16 septembre 2019
-
oui, c'est du c++. je ne comprends pas a quoi sert le std et getline. mais merci beaucoup !
Anat94
Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
16 septembre 2019
-
Autre chose, je viens de tester le programme mais il ne m'aide pas car il affiche les lettres.J'ai du passer a coté de quelque chose. peux tu m’éclairer?
[Dal]
Messages postés
5210
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 septembre 2019
800 -
Je n'ai pas donné la solution à l'exercice, mais du code répondant à ta question initiale et te montrant comment énumérer les lettres d'une saisie en créant une boucle où tu peux faire les traitements souhaités sur les lettres, le tout en C++.
Anat94
Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
16 septembre 2019
-
merci beaucoup !
[Dal]
Messages postés
5210
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 septembre 2019
800 -
de rien, bon courage pour la suite, et si tu as une autre question n'hésite pas à poster un nouveau sujet :-)
Commenter la réponse de [Dal]