FORUM Tom's Hardware » Programmation » C / C++ / Java » Chaine de caractère dans une condition [Résolu]
 

Chaine de caractère dans une condition [Résolu]

Il y a 308 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Chaine de caractère dans une condition [Résolu]
 
Plus d'informations

Bonjour à tous !
Je recontre un petit soucis dans l'un de mes programmes en C.
Voici un exemple de ce que je voudrais réaliser :
 

Code :
  1. //prog.h
  2. typedef struct
  3. {
  4.     char code[5];
  5. }etudiant


 

Code :
  1. //prog.c
  2. void prog (void)
  3. {
  4.     etudiant e;
  5.     if(strcmp(e.code,"oui" )==0)
  6.         printf("code ok" );
  7.     else printf ("erreur" );
  8. }


 
C'est vraiment un résumé, la structure possède d'autre variables théoriquement,etc... mais j'ai cibler le principal ici pour vous expliquer où se situe le problème.
Donc sachant que "code" est une chaine de caractères, lorsque cette chaine forme le mot "oui", je voudrais que l'on écrive "code ok". Mais visiblement ça ne fonctionne pas, j'ai un warning dans mon terminal :
 

Code :
  1. prog.c:103: attention : passing argument 1 of ‘strcmp’ makes pointer from integer without a cast


 
Je peux donc exécuter quand même le programme, mais j'ai une erreur de segmentation au niveau du "if" par la suite.
 
Quelqu'un aurait-il une idée ?
 
En vous remerciant ;)


Message édité par jb63-- le 25-11-2007 à 13:38:06

Profil : Pointeur
Plus d'informations

bizarre ca...
 
compilateur ? plateforme ?
tu as la meme erreur avec le code "allégé" que tu as posté ?


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

KangOl a écrit :

bizarre ca...
 
compilateur ? plateforme ?
tu as la meme erreur avec le code "allégé" que tu as posté ?


Merci de ton aide pour commencer ;)
 
Je tourne sous Linux Sabayon, donc j'utilise le terminal pour compiler (donc avec gcc *.c -o prog).
Alors par contre j'vais rebooté sur Sabayon là parce que j'étais sous Vista et j'rééditerai mon post ensuite.
Mais j'peux déjà te dire que j'ai testé sur un autre Pc (Windows XP) avec "dev c++" le code allégé ci dessus et ça fonctionne sans problème.
En revanche j'pense avoir oublier le #include<stdlib.h> dans mon "vrai" programme...ça pourrait avoir un rapport ?  :??: ... j'vais aller voir ça...  :hello:  
J'suis débutant au fait ... ça j'l'avais pas précisé !  :D  :D

Plus d'informations

Ok...alors le programme allégé tourne aussi sans problème !
J'vais revoir encore celui d'origine pour essayer de trouver d'ou viens le soucis...
 
Par contre je sais que si j'veux que ce soit un nombre qui valide l'affichage "code ok", ça marche nikel !
 
Dans ce genre là quoi :

Code :
  1. //prog.h  
  2. typedef struct
  3. {
  4.     int code;
  5. }etudiant;


   

Code :
  1. //prog.c  
  2. void prog (void)
  3. {
  4.     etudiant e;
  5.     if(e.code==1)
  6.         printf("code ok" );
  7.     else printf ("erreur" );
  8. }


Message édité par jb63-- le 25-11-2007 à 13:26:21
Plus d'informations

Bon bah ça y'est je crois avoir trouvé mon erreur...
J'ai oublié de définir un nombre de caractères pour la variable "code" dans ma structure  :ange:  
 
Désolé pour le temps perdu, mais merci de ton aide ;) :hello:


Message édité par jb63-- le 25-11-2007 à 13:32:35
Profil : Pointeur
Plus d'informations

et ca compilait ?


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

KangOl a écrit :

et ca compilait ?


Oui ça a toujours compilé, j'avais juste le warning ... donc ça n'empêchait pas le lancement du programme ensuite, j'obtenais juste une erreur de segmentation.

zeb
Profil : Modérateur libre
Plus d'informations

:) Ca marche, j'en suis content.
 
gcc -Wall est ton meilleur ami. ;)


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

zeb a écrit :

:) Ca marche, j'en suis content.
 
gcc -Wall est ton meilleur ami. ;)


Umhumh ... ok moi j'veux bien :D
Mais ça sert à quoi cette bêbête là ? :)

Profil : Pointeur
Plus d'informations

RTFM :o


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
guich
Plus d'informations

Google est ton ami (penses-y ...)
http://c.developpez.com/tutgcc/c207.php  (ce n'est qu'une recherche primaire, à toi d'effectuer une recherche plus approfondie)


---------------
www.guich.fr
zeb
Profil : Modérateur libre
Plus d'informations

KangOl +1
guillaumech +1 aussi.
 
les pages man, gcc -Wall et google sont nos meilleurs amis ;)
 
jb, force TOUS les warnings et ne sois satisfait de toi que quand il n'en reste aucun. :)


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Oki ... merci on va voir tout ça ;)
... j'risque de revenir ! :D


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » C / C++ / Java » Chaine de caractère dans une condition [Résolu]
 

Annonces Google
Publicité
Les téléchargements