Pointeur dans un tableau en C++

Résolu/Fermé
Nono1996 Messages postés 107 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 1 mai 2016 - 6 juin 2012 à 11:23
Nono1996 Messages postés 107 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 1 mai 2016 - 18 nov. 2012 à 10:25
Bonjour,

Je suis programmeur débutant de c++ en cours d'apprentissage. Mon problème concerne les pointeurs. Je sais qu'il est possible de pointer un caractère dans un string. Je sais également que l'on peut pointer une case d'un tableau. Mais comment fait-on pour pointer un caractère spécifique d'un string contenu dans un tableau ?

Exemple :

string messageBienvenu[1];

messageBienvenu[0] = "Bienvenu.";
messageBienvenu[1] = "Es-tu une file ou un garçon ?";

//Comment pointer le 'B' de "Bienvenu" ?

- Pour les curieux -

Si je souhaiter pointer lettre par lettre c'est pour afficher (en toute logique) lettre par lettre (comme pour faire un effet d'écriture automatique).

Merci d'avance.

2 réponses

Utilisateur anonyme
7 nov. 2012 à 20:43
Et bien déjà avec messageBienvenue[0][0] tu obtient le "B". Après tu récupère son adresse dans un pointeur et tu as bien n pointeur qui pointe vers le "B"
2
Nono1996 Messages postés 107 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 1 mai 2016 10
18 nov. 2012 à 10:25
Merci :) ça marche !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
7 nov. 2012 à 21:29
string messageBienvenu[1];
Déjà, il faudrait mettre [2]; puisque tu as besoin de deux cases dans ton tableau.

Pour afficher caractère par caractère messageBienvenu[i] avec i dans une boucle for. Et ça sera parfait :)
0
Utilisateur anonyme
7 nov. 2012 à 21:36
Je ne veux pas te contredire, mais il faut faire un double boucle for imbriqué. En effet messageBienvenue[i] affichera la chaine à l'index i, mais pas le caractère à l'index i. Il faut donc faire 2 boucles for, un qui parcourt messageBienvenue (avec un int i ) et une autre dedans qui parcourt chaque caractère de messageBienvenue[i] (avec int j). On notera alors messageBienvenue[i][j];
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
7 nov. 2012 à 21:46
Très juste. Et même messageBienvenu[i][j] sinon le compilateur va dire qu'il connaît pas la variable :-p.
0
Utilisateur anonyme
8 nov. 2012 à 00:05
mdr c'est pas faux
0