Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tester format chaine de caractere

3 réponses
Avatar
zayd_ghannam
bonjour ,
je voudrais savoir si il existe des fonctions predefini en C ou C ++
pour tester une chaine de caracteres ( voir si ce n'est que du
numerique ou de l'alphanumerique.) ? la fonction format permet -elle
cela ?

Merci d'avance

zizou

3 réponses

Avatar
Marc Boyer
Le 08-05-2006, a écrit :
je voudrais savoir si il existe des fonctions predefini en C ou C ++
pour tester une chaine de caracteres ( voir si ce n'est que du
numerique ou de l'alphanumerique.) ? la fonction format permet -elle
cela ?


Rien de très facile à utiliser.
La famille strtol, strtoul, permet de convertir une chaine en
long, et de vérifier si la chaine ne contenait que ça (en testant
la nullité du 2ème argument).
Mais il faut véfifier si la gestion des débordements
te conviens.

Après, il y la le méconnu spécificateur de format [],
mais il n'est pas forcément évident à utiliser.
Par exemple,
sscanf( input_string, "%[0123456789]", out_string);
retourne 1 si input_string commence par des caractères
numériques. Mais il faut ensuite véfier que
strlen(input_string) == strlen(out_string) pour voir
qu'il n'y avait que ça. En plus, il faut pré-dimensionner
out_string.

Donc, ça dépend de ce que tu veux faire. Si tu a des
motifs très variés à tester, il vaut mieux chercher
une bibliothèque qui le fasse. En C++ (HS sur ce forum,
mais admettons une réponse rapide), Boost.regex
http://www.boost.org/libs/regex/doc/index.html
En C, je ne sais pas.

Sinon, si ton problème se résume explucisment aux deux cas
que tu as présentés, sans gestion des accents, des espaces
et autre, le spécificateur de format [] devrait suffire.

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. Paul Éluard)

Avatar
Antoine Leca
En news:,
"zizou" va escriure:
je voudrais savoir si il existe des fonctions predefini en C ou C ++
pour tester une chaine de caracteres ( voir si ce n'est que du
numerique ou de l'alphanumerique.) ?


Une chaîne, en C standard et portable, non.
Un caractère (simple), oui, regarde les fonctions de <ctype.h>


Antoine

Avatar
Emmanuel Delahaye
bonjour ,
je voudrais savoir si il existe des fonctions predefini en C ou C ++
pour tester une chaine de caracteres ( voir si ce n'est que du
numerique ou de l'alphanumerique.) ? la fonction format permet -elle
cela ?


Tu peux convertir avec sscanf() et tester le résultat... Lire la doc...

--
A+

Emmanuel Delahaye