A voir également:
- Char compare c
- Coco char - Accueil - Réseaux sociaux
- Beyond compare gratuit - Télécharger - Gestion de fichiers
- Hex compare - Télécharger - Gestion de fichiers
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Coco chat connexion sur mobile, le tchat est fermé ? ✓ - Forum Réseaux sociaux
5 réponses
Attention !
quand tu fais Chaine == 'N1' tu ne compare pas 2 chaînes,
mais 2 pointeurs !
(Une chaîne est un pointeur sur un tableau de char).
Tu dois utiliser strcmp() pour comparer 2 chaînes.
quand tu fais Chaine == 'N1' tu ne compare pas 2 chaînes,
mais 2 pointeurs !
(Une chaîne est un pointeur sur un tableau de char).
Tu dois utiliser strcmp() pour comparer 2 chaînes.
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
3 juin 2002 à 12:41
3 juin 2002 à 12:41
salut alors si je me reppel bien en c pour une chaine de deux caractére il fo un char[3] pour '\0' (fin de chaine)
voila ca va peut-etre t aider...
si j ai une autre idée je reviens...
bye
voila ca va peut-etre t aider...
si j ai une autre idée je reviens...
bye
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
3 juin 2002 à 14:09
3 juin 2002 à 14:09
exact autant pour moi!
va falloir que je m'y remette serieux la...
j avais encore jamais faisz un telle bourde
va falloir que je m'y remette serieux la...
j avais encore jamais faisz un telle bourde
>mais alors comment fait on pour un switch case
>d'une chaine de char ?
J'ai plusieurs solutions:
Solution 1 : Tout ce qui n'est pas Python est souffrance. La disparition de la souffrance peut être atteinte en ne programmant pas en non-Python.
Solution 2 : si tu as une classe String, ça sera plus vite fait, mais comme on est en C et pas en C++, c'est raté.
Solution 3 : si tu as des routines de CRC ou de hash quelqconque, tu peux calculer un hash de la chaîne et faire un switch sur la valeur du hash.
Pas la peine de taper dans le MD5 ou SHA512: Si la chaîne est courte, une simple CRC16 suffira largement. On trouve des routines de CRC16 très rapides.
Solution 4 : faire plein de if strcmp()... (je sais c'est pas bô, mais en C brut de fonderie, j'ai pas mieux :-/
>d'une chaine de char ?
J'ai plusieurs solutions:
Solution 1 : Tout ce qui n'est pas Python est souffrance. La disparition de la souffrance peut être atteinte en ne programmant pas en non-Python.
Solution 2 : si tu as une classe String, ça sera plus vite fait, mais comme on est en C et pas en C++, c'est raté.
Solution 3 : si tu as des routines de CRC ou de hash quelqconque, tu peux calculer un hash de la chaîne et faire un switch sur la valeur du hash.
Pas la peine de taper dans le MD5 ou SHA512: Si la chaîne est courte, une simple CRC16 suffira largement. On trouve des routines de CRC16 très rapides.
Solution 4 : faire plein de if strcmp()... (je sais c'est pas bô, mais en C brut de fonderie, j'ai pas mieux :-/
merci pour ton message seb
cependant
peut tu developper la solution 2 en plus clair que la solution 3
laquelle ne m'a pas paru vraiment limpide :
quézako CRC , hash ,MD5 ,SHA512
merci de redescendre sur la planete bleu que ses habitants appelent la terre .
pour la solution1 : je ne connais pas Python (de quel langage cela ce rapproche?)
pour la solution 4 : c'est justement parceque je ne trouve pas ca beau que je rencheri sur la question
merci encore
cependant
peut tu developper la solution 2 en plus clair que la solution 3
laquelle ne m'a pas paru vraiment limpide :
quézako CRC , hash ,MD5 ,SHA512
merci de redescendre sur la planete bleu que ses habitants appelent la terre .
pour la solution1 : je ne connais pas Python (de quel langage cela ce rapproche?)
pour la solution 4 : c'est justement parceque je ne trouve pas ca beau que je rencheri sur la question
merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bien !
1) Python est un langage de script objet, clair, facile à apprendre, opensource, bourré de routine toutes prêtes, multiplaforme et ouvert (on peut l'interfacer avec d'autres langages comme C, C++, etc.) Voir http://www.python.org et http://www.rimbault.net/python.
2) La majorité des compilateurs C++ sont fournis avec des classes String (pas toujours super-bien construites, mais bon). Elles surchargent généralement l'opération de comparaison, ce qui permet - il me semble - de les utiliser dans les switch (arrêtez-moi si je dis une connerie).
3)
Le hashage est une opération très simple:
C'est une moulinette qui prend en entrée un nombre quelqconque d'octets et qui sort un nombre fixe d'octets.
Ces octets en sortie sont une sorte d'empreinte de la chaîne en entrée.
Deux chaînes identiques auront 2 hash identiques.
Si tu as 2 hash identiques, tu peux être sûr à 99,9999999% que les chaînes d'origine sont identiques.
Les hash sont massivement utilisés: dans les fichiers archive (ZIP, RAR...) pour s'assurer que les fichiers ne sont pas endommagés ; dans tous les systèmes d'exploitation pour vérifier la validité d'un mot de passe sans avoir à le stocker ; en crypto (ex:échanges bancaires, PGP, SSL/HTTPS...) pour signer des messages ou des certificats ; dans les bases de données pour construire des indexes ; etc.
Les hash étant généralement courts (ex: 32 bits pour une CRC32), l'ordinateur sait très bien les utiliser comme des nombres et les comparer dans des switch.
Il est plus facile de comparer 2 entiers (2 hashs) que 2 chaînes de caractères (c'est d'ailleurs ce qui est fait dans les bases de données pour les clés primaires).
Il existe différents types de hash (ou CRC). Pour comparer des chaînes de quelques centaines d'octets, une CRC16 suffit largement.
1) Python est un langage de script objet, clair, facile à apprendre, opensource, bourré de routine toutes prêtes, multiplaforme et ouvert (on peut l'interfacer avec d'autres langages comme C, C++, etc.) Voir http://www.python.org et http://www.rimbault.net/python.
2) La majorité des compilateurs C++ sont fournis avec des classes String (pas toujours super-bien construites, mais bon). Elles surchargent généralement l'opération de comparaison, ce qui permet - il me semble - de les utiliser dans les switch (arrêtez-moi si je dis une connerie).
3)
Le hashage est une opération très simple:
C'est une moulinette qui prend en entrée un nombre quelqconque d'octets et qui sort un nombre fixe d'octets.
Ces octets en sortie sont une sorte d'empreinte de la chaîne en entrée.
Deux chaînes identiques auront 2 hash identiques.
Si tu as 2 hash identiques, tu peux être sûr à 99,9999999% que les chaînes d'origine sont identiques.
Les hash sont massivement utilisés: dans les fichiers archive (ZIP, RAR...) pour s'assurer que les fichiers ne sont pas endommagés ; dans tous les systèmes d'exploitation pour vérifier la validité d'un mot de passe sans avoir à le stocker ; en crypto (ex:échanges bancaires, PGP, SSL/HTTPS...) pour signer des messages ou des certificats ; dans les bases de données pour construire des indexes ; etc.
Les hash étant généralement courts (ex: 32 bits pour une CRC32), l'ordinateur sait très bien les utiliser comme des nombres et les comparer dans des switch.
Il est plus facile de comparer 2 entiers (2 hashs) que 2 chaînes de caractères (c'est d'ailleurs ce qui est fait dans les bases de données pour les clés primaires).
Il existe différents types de hash (ou CRC). Pour comparer des chaînes de quelques centaines d'octets, une CRC16 suffit largement.
3 juin 2002 à 13:40
donc il faut test le result du strcmp
mais alors comment fait on pour un switch case
d'une chaine de char ?
merci du rappel strcmp
fautqu'je li !
3 juin 2002 à 18:09
Mais il y a autre chose :
qd tu fais Chaine == 'N1' , tu compares ta chaine avec 1 caractere.
Or N1 c'est 2 caracteres.
Le simple cote est utilisé pour un caractere, et le double cote pour une chaine de caractere
Peguinette...
"Petit à petit on devient moins petit."
22 janv. 2012 à 09:26
quelle set la commande?