conversion d'une chaine de caractère en un entier unique

conversion d'une chaine de caractère en un entier unique - C - Programmation

Marsh Posté le 10-12-2004 à 11:24:13    

Bonjour à tous,
je me demande s'il y a une façon et pas nécessairement une fonction prête pour convertir une chaine de caractères en un entier unique.  
merci d'avance.
ssou

Reply

Marsh Posté le 10-12-2004 à 11:24:13   

Reply

Marsh Posté le 10-12-2004 à 11:30:12    

[:autobot]
Qu'est-ce que tu entends par 'entier unique'?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-12-2004 à 12:39:41    

c pas un crc qui faudrait plutot ?

Reply

Marsh Posté le 10-12-2004 à 15:52:42    

(c'est pour ça que je posais la question... :whistle: )


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-12-2004 à 20:44:48    

Si tu ne specifie pas mieux ton probleme, on ne peut repondre que "oui, il existe une bijection entre l'ensemble des chaines de caracteres et l'ensemble des entiers naturels". Ce qui ne t'aide pas beaucoup puisque ce ne sont pas des ensembles de cardinal fini.


Message édité par matafan le 10-12-2004 à 20:46:45
Reply

Marsh Posté le 11-12-2004 à 09:05:02    

skeye a écrit :

[:autobot]
Qu'est-ce que tu entends par 'entier unique'?


par entier unique g voulu dire que deux chaine de caractères différentes doivent donner deux entiers différents

Reply

Marsh Posté le 11-12-2004 à 09:07:09    

red faction a écrit :

c pas un crc qui faudrait plutot ?


c'est quoi un crc svp?

Reply

Marsh Posté le 11-12-2004 à 09:10:08    

Emmanuel Delahaye a écrit :

Ah, ou un hash code ? Google est ton ami...


je pense qu'un hash code ne me garantie pas l'unicité du résultat. en fait je veux une fonction bijective : 1-to-1, a map function

Reply

Marsh Posté le 11-12-2004 à 09:19:14    

Reply

Marsh Posté le 11-12-2004 à 09:28:12    

matafan a écrit :

Si tu ne specifie pas mieux ton probleme, on ne peut repondre que "oui, il existe une bijection entre l'ensemble des chaines de caracteres et l'ensemble des entiers naturels". Ce qui ne t'aide pas beaucoup puisque ce ne sont pas des ensembles de cardinal fini.


mon problème consiste à convertir plusieurs (des milliers) des URL representés, bien sûr, par des chaînes de caractères "http://www.hardware.fr" par exemple en des entiers uniques dans le sens où deux chaine différentes doivent me donner deux entiers différents: une bijection qu'il me faut.

Reply

Marsh Posté le 11-12-2004 à 09:28:12   

Reply

Marsh Posté le 11-12-2004 à 09:30:49    

Emmanuel Delahaye a écrit :

strtol()
strtoul()


mais ces deux fonctions convertissent des chaines de carcactères qui contiennent uniquement des chiffres, mais mon problème est que je veux passer d'une chaîne de caractères alphanumérique à un entier unique.

Reply

Marsh Posté le 11-12-2004 à 09:46:19    

Avec un CRC16 ça doit le faire ..

Reply

Marsh Posté le 11-12-2004 à 09:55:22    

ssou a écrit :

mon problème consiste à convertir plusieurs (des milliers) des URL representés, bien sûr, par des chaînes de caractères "http://www.hardware.fr" par exemple en des entiers uniques dans le sens où deux chaine différentes doivent me donner deux entiers différents: une bijection qu'il me faut.


C'est typiquement le genre d'information qu'il aurait été utile de poster dès le début. Ca aurait éviter bien des hésitations (réponses erronées effacées).  
 
Je suis d'accord qu'un CRC16, voire un CRC32 (ça dépend du nombre de millers de chaine) devrait faire l'affaire, sachant que, à ma connaissance, la bijection absolue ne sera pas garantie. Le taux d'erreur doit pouvoir se calculer, mais il dépasse largement mes faibles compétences mathématiques (si j'ai bien suivi, c'est plutôt du boulot pour 'matafan'...)


Message édité par Emmanuel Delahaye le 11-12-2004 à 10:58:13

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 11-12-2004 à 10:50:38    

Cricri_ a écrit :

Avec un CRC16 ça doit le faire ..


merci, je vais essayer ça

Reply

Marsh Posté le 11-12-2004 à 10:55:08    

Emmanuel Delahaye a écrit :

C'est typiquement le genre d'unformation qu'il aurait été utile de poster dès le début. Ca aurait éviter bien des hésitations.  
 
Je suis d'accord qu'un CRC16, voire un CRC32 (ça dépend du nombre de millers de chaine) devrait faire l'affaire, sachant que, à ma connaissance, la bijection absolue ne sera pas garantie. Le taux d'erreur doit pouvoir se calculer, mais il dépasse largement mes faibles compétences mathématiques (si j'ai bien suivi, c'est plutôt du boulot pour 'matafan'...)


merci, je vais essayer ça

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed