Pointeur

Résolu
snpier wolf Messages postés 216 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 30 mai 2011 - 5 déc. 2007 à 23:31
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 - 6 déc. 2007 à 13:48
bonjour

j'ais un problèmme que je n'arive pas a résoudre.

quelle est la commande pour verifier ce que point un pointeur ?

exemple :

main()
{
char x[3];

gets(x);

if( MON PROBLEMME ){commande1}else{commande2}
}

car j'ais essayé

if(x=="F:")

mais sa ne fonctionne pas si la personne écrie b: sa execute quand même la commande1

4 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
5 déc. 2007 à 23:51
Lors de la compilation, ta chaine entrée de cette façon ("F:") ne sera rien de plus qu'une adresse pointant vers la zone mémoire contenant les caractères. Logiquement, comparer 2 adresses complètement différentes sera toujours faux.
On compare 2 chaines en comparant, un à un, chacun de leurs caractères.
C'est ce que fais la fonction strcmp.

Là faut vraiment ouvrir un bouquin de C car, si tu ne saisie pas encore ces concepts, tu patinera sur place pour tout le reste.

C++ (@++)<!--
3
snpier wolf Messages postés 216 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 30 mai 2011
5 déc. 2007 à 23:58
merci =)
je vois bien que je patinne pour rien défois mais je me connais si je trouve une info sur le livre je vai just la copyer et basta allors qu la j'ais tellement galéré que je vai m'en souvenir
merci encors
0
gamemonde Messages postés 336 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 9 juillet 2011 2
6 déc. 2007 à 11:34
tu peux faire directement comparer que le premier caractere puisque tu sait deja  que ta chaine sera du type lecteur:

donc

if (x[0] == 'F')
{
.....
}
else
{
......
}
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
6 déc. 2007 à 13:48
Ouais mais si il entre "FF", ça passera quand même.
On peut tester en 3 étapes

if(x[0] == 'F' && x[1] == ':' && !x[2]) {
.....
}

C++ (@++)<!--
0
Rejoignez-nous