Sans l'utilisation de printf et scanf pour entrer une chaîne de caractères, quel(s) autre(s) manière(s) puis-je utiliser dans le langage C pour accomplir cela? Merci
Sans l'utilisation de printf et scanf pour entrer une chaîne de caractères, quel(s) autre(s) manière(s) puis-je utiliser dans le langage C pour accomplir cela? Merci
Tu peux utiliser les fonctions de la famille gets pour la lecture. C'est d'ailleurs plus simple et moins dangereux à utiliser que scanf.
L'avantage de scanf est le formatage de la chaine en entrée, mais l'inconvénient est que mal maitrisée et utilisée, elle transforme ton programme en source de buffer overflow.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Attention, la famille de *gets contient/contenait une fonction à ne surtout pas utiliser: gets elle-même.
Tu peux aussi écrire directement dans le tableau: un char est un type entier, chaque case est accessible normalement.
Par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 char tab[20]=""; // initialisation avec la chaine vide. tab[0]='a'; tab[1]='b'; tab[2]='c'; tab[3]='\0'; printf("tab contient %s", tab);
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
tab[0]="a"; vraiment, ternel..? Tu es amoureuse en ce moment ?
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
En fait gets ne contrôle pas le débordement, par contre fgets le fait. Il faudra spécifier la taille max du buffer.
Par ailleurs gets/fgets s'interrompent lors d'un retour chariot ou EOF. Il faut penser que la chaine pourra se terminer par un \n.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Attention : gets n'est pas à fgets ce que sprintf est à snprintf, par exemple. On peut utiliser sprintf de manière sûre alors qu'il n'existe aucun moyen d'utiliser gets de manière sûre.
gets n'est pas une alternative. Il ne faut jamais l'employer.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager