(c), probleme condition
Résolu/Fermé
ugo
-
15 nov. 2008 à 22:13
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 15 nov. 2008 à 22:47
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 15 nov. 2008 à 22:47
A voir également:
- (c), probleme condition
- Excel cellule couleur si condition texte - Guide
- Condition et excel - Guide
- Excel soustraction avec condition ✓ - Forum Excel
- Mise en forme conditionnelle double condition ✓ - Forum Bureautique
- Excel copier une cellule si condition ✓ - Forum Excel
4 réponses
pyschopathe
Messages postés
1973
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
15 nov. 2008 à 22:22
15 nov. 2008 à 22:22
strcmp est la fonction qu'il te faut pour comparer deux chaines de caractères. Elle renvoie 0 si les deux chaines sont identiques. man strcmp pour plus d'infos.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
15 nov. 2008 à 22:24
15 nov. 2008 à 22:24
Salut
En C, pour comparer deux chaînes, on utilise strcmp ou mieux encore strncmp de string.h. Si tu utilises l'opérateur ==, tu compares les adresses, qui sont bien évidemment différentes, à moins d'utiliser un pointeur pointant sur nom (mais bon ^^).
A la place de :
teste :
N'oublie pas qu'il y aura le '\n' de stocker dans ta chaîne si il y a la place. Donc, stocke-le aussi dans mon_nom.
Et, je te conseille plutôt d'utiliser fgets que scanf("%s",nom); pour des raisons de sécurités.
Cdlt
En C, pour comparer deux chaînes, on utilise strcmp ou mieux encore strncmp de string.h. Si tu utilises l'opérateur ==, tu compares les adresses, qui sont bien évidemment différentes, à moins d'utiliser un pointeur pointant sur nom (mais bon ^^).
A la place de :
if (nom == mon_nom)
teste :
if (strncmp(nom,mon_nom,sizeof nom)==0)
N'oublie pas qu'il y aura le '\n' de stocker dans ta chaîne si il y a la place. Donc, stocke-le aussi dans mon_nom.
Et, je te conseille plutôt d'utiliser fgets que scanf("%s",nom); pour des raisons de sécurités.
Cdlt
pyschopathe
Messages postés
1973
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
15 nov. 2008 à 22:29
15 nov. 2008 à 22:29
Salut fiddy, pourrais-tu m'expliquer pourquoi fgets est plus sécurisé que scanf stp ? Mon C est un peu rouillé ^^.
edit : En fait, je viens de me souvenir que fgets utilisait un tampon pour stocker la chaîne et qu'on pouvait spécifier le nombre de caractères à lire... Ceci expliquant celà, inutile de te fatiguer à moins que tu aies des précisions ou corrections à apporter...
edit : En fait, je viens de me souvenir que fgets utilisait un tampon pour stocker la chaîne et qu'on pouvait spécifier le nombre de caractères à lire... Ceci expliquant celà, inutile de te fatiguer à moins que tu aies des précisions ou corrections à apporter...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
>
pyschopathe
Messages postés
1973
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
15 nov. 2008 à 22:35
15 nov. 2008 à 22:35
Ca tombe bien, je viens juste d'écrire un article il y a pas longtemps ^^.
http://fiddy60.club.fr/C.html
Cdlt
http://fiddy60.club.fr/C.html
Cdlt
pyschopathe
Messages postés
1973
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
15 nov. 2008 à 22:47
15 nov. 2008 à 22:47
Merci fiddy, pas mal cet article et je jetterai un coup d'oeil au reste du site quand j'aurai 5 minutes, il m'a l'air d'y avoir deux-trois trucs intéressants ^^.