Saisir une chaine alphanumérique en C

a marqué ce sujet comme résolu.

Bonjour,

Je suis débutant en C et j’ai un exercice sur la gestion d’immatriculation de voitures. Le demandé est de saisir l’immatriculation d’une voiture qui est composée d’un numéro, la chaine"TUN" et le numéro de série par exemple: 15 TUN 155. Dans le saisie de l’immatriculation je dois vérifier que le numéro ne dépasse pas les 4 chiffres, la chaine est "TUN" et le nombre est positive. sinon un message d’erreur sera affiché. Et assurer que tous ces données sont dans la même chaîne de caractère. Aussi, si l’immatriculation existe le programme doit le signaler.

SVP, j’ai besoin de votre aide et j’ai un deadline de deux jours. Comment écrire ce programme en C? Merci d’avance.

+0 -1

Bonjour,

Il y a justement un cours sur le C : Le langage C.

Pour obtenir de l’aide, le mieux est de poster ce que tu as déjà fait et on s’occupe de t’indiquer comment arrivez au résultat souhaité.

+0 -1

Salut,

Le plus simple est de demander la saisie d’une chaîne de caractères de 10 caractères. Ensuite, tu vérifies les choses suivantes.

  • les deux premiers et les trois derniers caractères sont des chiffres.
  • les caractères d’indice 3, 4, et 5 sont des lettres de l’alphabet (et tu peux même vérifier qu’ils sont en majuscule).
  • et pareil pour les espaces.

Tester si un caractère est un espace se fait facilement. Et tu as des outils dans la bibliothèque standard pour savoir si un caractère est une lettre ou encore si c’est un chiffre.

+0 -0

Hello,

la fonction strtonum devrait pouvoir t’aider :

NAME strtonum – reliably convert string value to an integer

SYNOPSIS #include <stdlib.h>

 long long
 strtonum(const char *nptr, long long minval, long long maxval,
     const char **errstr);

Un exemple concret : gpioctl gpio0 5 set out error_led où argv[1] = '5'

/* expecting a pin number or name */
                pin = strtonum(argv[1], 0, INT_MAX, &errstr);

Bonjour Oliv,

Je ne connais pas cette fonction, il y a peu de chance que ce soit une fonction standard.

Le plus simple est d’utiliser les fonctions de la bibliothèque ctype.h comme isalpha.

+0 -0

Bonjour Oliv,

Je ne connais pas cette fonction, il y a peu de chance que ce soit une fonction standard.

Le plus simple est d’utiliser les fonctions de la bibliothèque ctype.h comme isalpha.

ache

Effectivement, je n’avais pas vu la précision du man OpenBSD : STANDARDS strtonum() is an OpenBSD extension. The existing alternatives, such as atoi(3) and strtol(3), are either impossible or difficult to use safely.

Fonction implémentée depuis sur nombre de distribution linux.

Dsl pour le bruit, extension pour raison de sécurité de la libstd via les équipes OpenBSD.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte