Fonction scanf help !
Résolu/Fermé
toinou293
Messages postés
33
Date d'inscription
dimanche 25 décembre 2011
Statut
Membre
Dernière intervention
17 septembre 2013
-
1 déc. 2012 à 10:24
toinou293 Messages postés 33 Date d'inscription dimanche 25 décembre 2011 Statut Membre Dernière intervention 17 septembre 2013 - 2 déc. 2012 à 00:58
toinou293 Messages postés 33 Date d'inscription dimanche 25 décembre 2011 Statut Membre Dernière intervention 17 septembre 2013 - 2 déc. 2012 à 00:58
A voir également:
- Fonction scanf help !
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction filtre excel n'existe pas - Forum Excel
- Fonction remplacer word - Guide
1 réponse
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
1 déc. 2012 à 15:41
1 déc. 2012 à 15:41
hello
essayer
essayer
#include <string.h> #include <stdio.h> int main(int ac, char **av) { char str[128]; printf("mettez votre commande\n"); while(42) { scanf("%s", str); if (strcmp(str, "play") == 0) { printf("BoOm BoOm TchaK\n"); break; } } }
Modifié par bizu53 le 1/12/2012 à 16:48
Concernant tu lui donnes un pointeur sur ton pointeur str. Il faut donc
Ensuite, ton pointeur str n'est qu'un pointeur qui ne pointe nulle part (quelque part plus ou moins aléatoire si je me souviens bien) car tu n'a pas alloué de mémoire "en face".
Donc soit tu fixes une taille comme l'a fait dubcek soit tu alloues de la mémoire "en face" de ton pointeur avec (à faire suivre d'un quand tu n'en a plus besoin pour libérer la mémoire allouée).
Concernant la comparaison , je ne sais pas si ça compile (j'écris sans tester) mais même si c'était le cas ça serait toujours faux. Dis-toi que les (vraies) chaînes de caractères n'existent pas en C, ce ne sont que des caractères à la suite (abusivement appelées "chaîne de caractères" quand même), dont tu as un pointeur sur le premier : str est un pointeur, donc faire "str == [...]" signifie "est-ce que mon pointeur str est équivalent à [...] ?". Pour savoir si tous les caractères sont 1 à 1 égaux, tu as la fonction strcmp qui existe qui retourne 0 s'il n'y a pas de différence entre les deux.
1 déc. 2012 à 18:21
Je ne vois pas pourquoi ça compilerait pas... On a bien le droit de faire des comparaisons d'adresses mémoires...
Modifié par bizu53 le 1/12/2012 à 21:19
Je pense qu'avec les options que warning ça doit quand même pouvoir être signalé (et dans ce cas, mais je triche, pour peu qu'on active l'option considérant les warnings comme des erreurs ... :-)).
1 déc. 2012 à 22:36
2 déc. 2012 à 00:58