Chaine de caractere quelconque vers int en c
Résolu
Eti38
Messages postés
55
Date d'inscription
Statut
Membre
Dernière intervention
-
Eti38 Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
Eti38 Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je code en c, je voudrais une fonction me transformant une chaine de caracteres quelconque en un int.
atoi n'est pas bonne,car elle ne traduit que les chaine de caractère ou les caracteres sont des chiffres.
Si vous avez une idée...........
Je code en c, je voudrais une fonction me transformant une chaine de caracteres quelconque en un int.
atoi n'est pas bonne,car elle ne traduit que les chaine de caractère ou les caracteres sont des chiffres.
Si vous avez une idée...........
A voir également:
- Chaine de caractere quelconque vers int en c
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractere vide - Guide
8 réponses
Bonjour Eti38,
Je ne comprends pas bien votre requête.
Comment envisagez-vous qu'une chaîne de caractères quelconque puisse être transformée en int ?
Si je prends le mot "Camion": quel 'int' voulez-vous en tirer ? "Camion" n'est pas un nombre...
Merci d'éclairer ma lanterne !
Cordialement,
el_linwin
Je ne comprends pas bien votre requête.
Comment envisagez-vous qu'une chaîne de caractères quelconque puisse être transformée en int ?
Si je prends le mot "Camion": quel 'int' voulez-vous en tirer ? "Camion" n'est pas un nombre...
Merci d'éclairer ma lanterne !
Cordialement,
el_linwin
Peut importe en verité:
Il me fallait faire correspondre a une chaine donnée un entier unique....
Mais c'est plus chaud qu'il n'y parais...
26 caractere(sans parler des / * - + . etc..)
cela donne sur N caractere :26puissanceN............
Rien que 7 caractere et cela ne rentre plus sur un int de 4 octet...........
Bref excusez moi je pense que je vais tenter autre chose pour résoudre mon prob....
Il me fallait faire correspondre a une chaine donnée un entier unique....
Mais c'est plus chaud qu'il n'y parais...
26 caractere(sans parler des / * - + . etc..)
cela donne sur N caractere :26puissanceN............
Rien que 7 caractere et cela ne rentre plus sur un int de 4 octet...........
Bref excusez moi je pense que je vais tenter autre chose pour résoudre mon prob....
Bonjour Eti38,
Dans ce cas, il suffit de déclarer un tableau de chaînes ainsi:
char liste_chaines[nombre_de_chaines][taille_maximum_de_chaine]
Note: nombre_de_chaines et taille_maximum_de_chaine sont des constantes.
Ensuite, pour chaque chaîne de caractères, vous vérifiez si elle est dans le tableau.
Si oui, son numéro sera l'indice dans le tableau.
Si non, elle est ajoutée. Son indice sera la "ligne" du tableau dans laquelle elle aura été stockée.
Cordialement,
el_linwin
Dans ce cas, il suffit de déclarer un tableau de chaînes ainsi:
char liste_chaines[nombre_de_chaines][taille_maximum_de_chaine]
Note: nombre_de_chaines et taille_maximum_de_chaine sont des constantes.
Ensuite, pour chaque chaîne de caractères, vous vérifiez si elle est dans le tableau.
Si oui, son numéro sera l'indice dans le tableau.
Si non, elle est ajoutée. Son indice sera la "ligne" du tableau dans laquelle elle aura été stockée.
Cordialement,
el_linwin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je comprend ce que tu écrit,
mais ce qui ne correspond pas , c'est que j'ignore quelle va être la chaine de caractere:
il faut donc que N'IMPORTE quel chaine puisse être codée sur un int.
On a vu qu'a partir de 7 caracteres on ne peut faire correspondre a une unique chaine un unique int:
C'est donc mathématiquement impossible....
Je crois ne pas avoir dit trop de betises..
mais ce qui ne correspond pas , c'est que j'ignore quelle va être la chaine de caractere:
il faut donc que N'IMPORTE quel chaine puisse être codée sur un int.
On a vu qu'a partir de 7 caracteres on ne peut faire correspondre a une unique chaine un unique int:
C'est donc mathématiquement impossible....
Je crois ne pas avoir dit trop de betises..
Bonjour
/!\ Ne pas oublier que chaque caractère est représentable par un nombre !
'integer' ou 'int' : Longueur de 4 octets, stocke les nombres de -2 147 483 648 à 2 147 483 647.
Recherche de 'string vers int entier' avec Google :
https://www.google.fr/search?hl=fr&q=string+vers+int+entier&gws_rd=ssl
Exemple : Sujet : Passage d'un string vers un int.... ou comment savoir si c possible
https://forum.hardware.fr/hfr/Programmation/Java/passage-comment-possible-sujet_91682_1.htm
Merci à tous et pour le retour d'information (donnes la solution choisie et expliques)
/!\ Ne pas oublier que chaque caractère est représentable par un nombre !
'integer' ou 'int' : Longueur de 4 octets, stocke les nombres de -2 147 483 648 à 2 147 483 647.
Recherche de 'string vers int entier' avec Google :
https://www.google.fr/search?hl=fr&q=string+vers+int+entier&gws_rd=ssl
Exemple : Sujet : Passage d'un string vers un int.... ou comment savoir si c possible
https://forum.hardware.fr/hfr/Programmation/Java/passage-comment-possible-sujet_91682_1.htm
Merci à tous et pour le retour d'information (donnes la solution choisie et expliques)
Bonjour Eti38,
Si vous ne savez pas de quelle taille seront les chaînes, cette écriture est possible:
char liste_chaines[nombre_de_chaines][];
Ensuite, pour chaque chaînes, l'allocation se fera ainsi:
liste_chaines[indice]=(char *)malloc(sizeof(la_chaine));
Enfin, concernant la remarque: "On a vu qu'a partir de 7 caracteres on ne peut faire correspondre a une unique chaine un unique int: C'est donc mathématiquement impossible....", la mémoire de votre ordinateur n'est pas infinie non plus...
Pour atteindre le maximum, utilisez un 'unsigned long' pour l'indice: l'échelle va de 0 à +4294967295.
A ce niveau, seule la mémoire peut faire défaut !
Cordialement,
el_linwin
Si vous ne savez pas de quelle taille seront les chaînes, cette écriture est possible:
char liste_chaines[nombre_de_chaines][];
Ensuite, pour chaque chaînes, l'allocation se fera ainsi:
liste_chaines[indice]=(char *)malloc(sizeof(la_chaine));
Enfin, concernant la remarque: "On a vu qu'a partir de 7 caracteres on ne peut faire correspondre a une unique chaine un unique int: C'est donc mathématiquement impossible....", la mémoire de votre ordinateur n'est pas infinie non plus...
Pour atteindre le maximum, utilisez un 'unsigned long' pour l'indice: l'échelle va de 0 à +4294967295.
A ce niveau, seule la mémoire peut faire défaut !
Cordialement,
el_linwin