Notions de base de fonctions de manipulation de caractère pour la programmation de c

Au cœur de toute chaîne de texte est la variable char. Avec la programmation en C, il est un cagibi unique dans lequel vous farcir une valeur de 0 à 255. Cette valeur est représentée visuellement comme un personnage.

Sommaire

Fondements de la ctypes

Le langage C dispose d'une foule de fonctions conçues pour tester ou de manipuler des caractères individuels. Les fonctions sont toutes définies dans le fichier d'en-tête ctype.h. La plupart des programmeurs se réfèrent à des fonctions comme le CType fonctions, CTYPE où est prononcé “ voir type, n ° 148; et non “ Stoor-ye, ” qui comment un Russe natif lirait.

Pour utiliser les fonctions de CType, le fichier d'en-tête de ctype.h doit être inclus dans votre code source:

#comprendre 

CType fonctions entrent dans deux catégories: les tests et la manipulation.

FonctionRetourne TRUE Lorsque ch est
isalnum (ch)Une lettre de l'alphabet (majuscules ou minuscules) ou un numéro
isalpha (ch)Une lettre en majuscule ou en minuscule de l'alphabet
isascii (ch)Une valeur ASCII dans la plage de 0 à 127
isblank (ch)Une tabulation ou un espace ou un autre caractère vierge
iscntrl (ch)Un caractère de code de contrôle, les valeurs de 0 à 31 et 127
isdigit (ch)Un caractère de 0 à 9
isgraph (ch)Tout caractère imprimable sauf pour l'espace
ishexnumber (ch)Tous les chiffres en hexadécimal, 0 à 9 ou de A à F (orlowercase majuscules)
islower (ch)Une lettre minuscule de l'alphabet, un à z
ESTNUM (ch)Voir isdigit ()
isprint (ch)Tout caractère qui peut être affichée, y compris l'espace
ispunct (ch)Un symbole de ponctuation
isspace (ch)Un espace blanc de caractère, espace, tabulation, saut, ou un Entrez, par exemple
isupper (ch)Une lettre majuscule de l'alphabet, UN à Z
isxdigit (ch)Voir ishexnumber ()
FonctionRetours
ToASCII (ch)La valeur de code ASCII du CH, dans la gamme de 0 à 127
baisser(ch)Les minuscules de caractère ch
toupper (ch)La lettre majuscule de caractère ch

De manière générale, les fonctions de test commencent par est, et des fonctions de conversion commencent par à.

Chaque fonction de CTYPE accepte une valeur int comme argument, représenté par la variable ch dans les tableaux 13-1 et 13-2. Ce ne sont pas des fonctions omble!

Chaque fonction CTYPE retourne une valeur int. Pour les fonctions qui renvoient des valeurs VRAI ou FAUX FAUX logiques, est 0, et TRUE est une valeur non nulle.

Holt pour tester caractères

Les fonctions ctype viennent en plus à portée de main lors de l'essai d'entrée, déterminer que la bonne information a été tapé, ou en tirant les informations requises sur la malbouffe. Le code de la statistique de texte illustre comment un programme peut numériser un texte, arracher certains attributs, puis afficher un résumé de cette information.

TEXT STATISTIQUES

#include #include int main () {phrase de char [] = "Lorsque dans le cours des événements humains, il devient nécessaire pour un peuple de dissoudre les liens politiques qui l'ont attaché à un autre et de prendre, parmi les puissances de la terre , la place séparée et égale à laquelle les lois de la nature et du Dieu de la nature lui donnent droit, le respect dû à l'opinion de l'humanité oblige à déclarer les causes qui le déterminent à la séparation. »- int index, alpha, vierge, punct-alpha = blanc = punct = 0 - / * recueillir des données * / index = 0-while(phrase[index]){if(isalpha(phrase[index]))alpha++-if(isblank(phrase[index]))blank++-if(ispunct(phrase[index]))punct++-index++-}/* des résultats d'impression * / printf (""% s  " n", la phrase) -puts («Statistiques:») - printf ("caractères alphabétiques% d  n", alpha) -printf ("% d blancs  n ", en blanc) -printf (" symboles de ponctuation% d  n ", punct) -retour (0) -}

Statistiques de texte peut sembler long, mais il est pas- la phrase [] chaîne déclarée à la ligne 6 peut être tout ce que vous aimez - tout texte, un poème ou un limerick sale. Il devrait être assez longtemps pour avoir une poignée de personnages intéressants. Notez que bien que le texte est renvoyé et tirets dans ce texte, vous devez tapez une longue ligne de texte dans votre code.

Ce code fait aussi un gangs initialisation:

 alpha = blanc = = 0- punct

Parce que chacune de ces variables doit être réglé sur 0, vous utilisez les opérateurs d'affectation multiples sur la même ligne et accomplir la tâche d'un seul coup.

La viande de fonctionnement du programme se déroule en commençant par les données de recueillir commentaire. Une boucle while étapes à travers chaque caractère de la chaîne. La condition pour que la boucle while est la phrase [index]. Cette évaluation est vrai pour chaque personnage dans le tableau à l'exception du dernier, le caractère nul, qui évalue à FALSE et arrête la boucle.

Fonctions ctype sont utilisés dans le cas des déclarations que chaque caractère est évalué à Lignes 17, 19 et 21. Dans les tests if-else, tous les personnages doivent être vérifiés. Quand un match positif ou TRUE est trouvé, une variable compteur est incrémenté.

Exercice 1: Tapez le code source de Statistique de texte dans votre éditeur. Construire et exécuter.


Exercice 2: Modifier le code source de Statistique de texte afin que les tests sont également faits pour compter les lettres majuscules et minuscules. Afficher ces résultats ainsi.

Exercice 3: Ajouter du code à votre solution à l'exercice 2 de sorte qu'un décompte final de tous les caractères dans le texte (la longueur du texte) est affiché comme la dernière statistique.

Comment changer les caractères

Les fonctions ctype qui commencent par de sont utilisés pour convertir les caractères. Le plus commun de ces fonctions sont toupper () et tolower (), qui viennent en pratique lors de l'essai d'entrée. A titre d'exemple, considérer le problème yorn typique, illustré dans un problème Yorn.

UN PROBLÈME YORN

#include #include int main () {char réponse-printf ("Voulez-vous faire sauter la lune?") -scanf ("% c", réponse) -Réponse = toupper (réponse) -Si (réponse == ' Y ') puts ("BOOM!") - elseputs ("La lune est sûr") - retour (0) -}

Yorn est programmeur-dire pour un oui ou par non à la situation: L'utilisateur est invité à taper Y pour Oui ou N pour Non-t-elle la personne ont à taper Y ou Y? Ou peuvent-ils saisir N ​​ou N, ou seraient sur une touche non-Y être considéré comme non?

Dans un problème Yorn, Ligne 10 utilise toupper () pour convertir l'entrée de caractères en majuscules. De cette façon, si une seule condition est nécessaire pour tester ou Y d'entrée y.

Exercice 4: Créez un nouveau projet en utilisant le code de source indiqué dans un problème Yorn. Construire et exécuter.

Exercice 5: Modifier le code source afin que le texte est affiché lorsque l'utilisateur tape ni Y, ni N.

Exercice 6: Ecrire un programme qui change toutes les lettres majuscules dans une chaîne de texte en minuscules et change les lettres minuscules en majuscules. Afficher les résultats.


» » » » Notions de base de fonctions de manipulation de caractère pour la programmation de c