Bonjour !
Je voudrais comparer deux chaines de caractère avec GTK+ . Mais , je ne sais pas comment faire . J'ai essayer strcmp , mais ca ne marche .
Si vous pouviez m'aider , je vous en serais reconnaissant .
Cordialement ,Arvel
.
Bonjour !
Je voudrais comparer deux chaines de caractère avec GTK+ . Mais , je ne sais pas comment faire . J'ai essayer strcmp , mais ca ne marche .
Si vous pouviez m'aider , je vous en serais reconnaissant .
Cordialement ,Arvel
.
Salut et bienvenue sur les forums de developpez.com![]()
Rien de tel avec la GLib (GTK+) mais cela devrait fonctionner avec strcmp ... Montre voir ton code !Envoyé par Arvel
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
EntryPseudo et EntryPassword sont déclarées en global ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void Validation(GtkWidget *Widget , gpointer data) { gchar pseudo; gchar pass; gchar verifpseudo = "Arvel"; gchar verifpass = "password"; pseudo = gtk_entry_get_text(GTK_ENTRY(EntryPseudo)); if(pseudo == verifpseudo) { pass = gtk_entry_get_text(GTK_ENTRY(EntryPassword)); if(pass == verifpass) { gtk_entry_set_text(GTK_ENTRY(EntryPseudo) , "Réussi"); } else gtk_main_quit(); } else gtk_main_quit(); }
Heu c'est moi que tu poses cette question ! C'est ton code, à toi de le savoirEnvoyé par Arvel
![]()
S'ils le sont, il faut éviter, sauf si bien entendu c'est un simple programme de test mais sinon, il faut éviter autant que faire se peut. Un conseil, tu peux éventuellement (vu que cette fonction est apparement un callback d'un widget) mettre ces deux GtkEntry dans une structure puis passer l'adresse de cette structure lors de la connection du signal au widget (le dernier argument quoi) puis tu récupère un pointeur vers cette structure depuis le paramètre "data" !
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Nop Nop Nop .
C'était pas une question . Mon doigt à du ripé du point au point d'interrogation .
Mais il n'y a rien pour comparer les 2 chaines en GTK ?
Ok au temps pour moiEnvoyé par Arvel
![]()
Bin non à priori non mais cela existe dans la bibliothèque standard ce qui est largement suffisant, tu inclus string.h et tu utilise strcmp, y'a rien d'autre à faire ! Est-ce que tu respecte au moin la casse de tes saisies par rapport à ce qui doit être comparé ?Envoyé par Arvel
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Oui en fait j'avais pas fait attention à ca mais regarde en rouge ... ce n'est pas comme ca qu'on test l'égalité entre deux chaînes !Envoyé par Arvel
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
avant quand je comparais deux chaînes je faisait comme if(chaine1==chine2)
mais ca marche pas tout le temps prenons un exemple:
voila un code qui devrait marcher mais qui plante et avec :if(strcmp(c1 , c2)==0) il marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdio.h> #include <stdlib.h> int main() { char *chaine1[100]; char chaine2[]="texte"; chaine1[0]="texte"; if(chaine1[0] == chaine2) printf(" ca marche "); return 0; }
et voila un qui marche avec strcmp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *chaine1[100]; char chaine2[]="texte"; chaine1[0]="texte"; if(strcmp (chaine1[0], chaine2 ) == 0) printf(" ca marche "); return 0; }
a+
Si ca marche (ton code 1) c'est un comportement indéterminé car ce n'est pas comme ca qu'on compare des chaînes de caractères, pour comparer deux données numérique là ok mais c'est tout ! Pour des chaînes il y a strcmp entre autres !
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Partager