Traiter caractère par caractère

Résolu
moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 - 10 janv. 2006 à 16:13
moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 - 12 janv. 2006 à 21:02
Bonjour,
Voila je voudrais traiter les caractères d'un texte un par un. J'avais pensé à un tableau de caractères mais lors de la saisie le texte est coupé au premier caractère nul. Je me suis ensuite penché sur une variable de type string mais dans ce cas je ne sais pas récupérer le iième caractère de la chaine ainsi que sa longueur.

Connaissez vous une façon de saisir un tableau de caractères ne se terminant pas par un caractère nul ou alors une façon de récupérer le iième caractère de la chaine string ainsi que sa longueur.

Merci d'avance.

6 réponses

katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
11 janv. 2006 à 17:25
char s[100];

puts("taper le texte:");

gets(s);

printf("\n s = '%s' \n Vous avez saisi %i caracteres\n",

s,strlen(s));

printf("Le 3e caractere est un %c \n",s[4]);
3
Lord_Patoche Messages postés 196 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 1 mai 2009 3
10 janv. 2006 à 16:47
Salut. Un texte entier peut très bien contenir dans le même tableau. Le retour à la ligne correspond au caractère '\n' puis '\r'. Pourquoi veux tu que chacune des lignes de ton texte se termine par le caractère NULL ?

LaPatoshe
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
10 janv. 2006 à 17:28
std::string coucou("test");



(coucou[2] == 's')

et la taille: coucou.size();
0
moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 10
12 janv. 2006 à 13:55
Tout d'abord excusez moi j'ai eu des problème de connexion voila pourquoi j'ai mis du temps a répondre.



Enfaite je souhaite faire saisir un teste a l'utilisateur donc j'avais pensé à :

char s [100];

cin >> s;



Mais quand je fais comme cela il coupe la chaine au premier caractère nul. Je vais essayé la méthode a katsankat : gets(s)



merci (je vous tiens au courant si ma connexion le veux bien)
0

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

Posez votre question
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
12 janv. 2006 à 15:17
Faut pas confondre les caractères NULL et espace (respectivement ASCII n°0 et ASCII n°32).



Mon exemple est en C avec stdio.h mais puisque tu es en C++ tu préfèras la méthode de luthor. Avec getline().



http://www.cplusplus.com/doc/tutorial/basic_io.html
0
moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 10
12 janv. 2006 à 21:02
Merci a tous,
je me suis servit de la fonction gets()
et merci pour la précision sur les carractère NULL
0
Rejoignez-nous