Grundlagen der Zeichen Manipulation Funktionen für C-Programmierung
Im Herzen von jedem Text-String ist der char-Variable. Mit der C-Programmierung, dann ist es ein einzigartiges Schuhfach, in dem Sie einen Wert von 0 bis 255 Sachen, die Wert visuell als ein Zeichen dargestellt wird.
Grundlagen der ctypes
Die Sprache C verfügt über eine Schar von Funktionen einzelner Zeichen zu testen oder zu manipulieren, entworfen. Die Funktionen sind im ctype.h Header-Datei definiert. Die meisten Programmierer deshalb auf die Funktionen wie die verweisen CTYPE Funktionen, wo CTYPE ausgesprochen # 147-see-Typ, # 148- und nicht # 147-stoor-ye, # 148-, die wie ein gebürtiger Russe es lesen würde.
Um die CTYPE Funktionen verwenden, muss die ctype.h Header-Datei im Quellcode enthalten sein:
#einschließen
CTYPE Funktionen passen in zwei Kategorien: Testen und Manipulation.
Funktion | Gibt TRUE zurück, wenn CH ist |
---|---|
isalnum (CH) | Ein Buchstabe des Alphabets (Groß- oder Kleinbuchstaben) oder eine Zahl |
isalpha (CH) | Ein Groß- oder Kleinbuchstaben des Alphabets |
isascii (CH) | Ein ASCII-Wert im Bereich von 0 bis 127 |
ist leer(CH) | Eine Lasche oder Raum oder eine andere Leerzeichen |
iscntrl (CH) | Ein Steuercodezeichen, Werte 0 bis 31 und 127 |
isdigit (CH) | Ein Zeichen von 0 bis 9 |
isgraph (CH) | Eine beliebige druckbare Zeichen außer für den Raum |
ishexnumber (CH) | Jede hexadezimale Ziffer von 0 bis 9 oder A bis F (Ober- orlowercase) |
islower (CH) | Ein Kleinbuchstabe des Alphabets, ein nach z |
ISNUMBER (CH) | Sehen isdigit () |
isprint (CH) | Jedes Zeichen, die angezeigt werden können, einschließlich der Raum |
ispunct (CH) | Ein Satzzeichen |
isspace (CH) | Ein Leerraumzeichen, Leerzeichen, Tabulator, Formularvorschub oder ein Geben Sie zum Beispiel |
isupper (CH) | Ein Großbuchstaben des Alphabets, EIN nach Z |
isxdigit (CH) | Sehen ishexnumber () |
Funktion | Kehrt zurück |
---|---|
toascii (CH) | Der ASCII-Wert von ch, im Bereich von 0 bis 127 |
zu senken(CH) | Die Klein Charakter CH |
toupper (CH) | Die Großbuchstaben des Charakters CH |
Im Allgemeinen beginnen die Prüfung Funktionen mit ist, und Konvertierungsfunktionen beginnen mit nach.
Jede CTYPE Funktion akzeptiert einen int-Wert als Argument, durch die Variable repräsentiert CH in den Tabellen 13-1 und 13-2. Diese sind nicht char Funktionen!
Jede CTYPE Funktion gibt einen int-Wert. Für die Funktionen, die logisch WAHR oder FALSCH Werte zurück, FALSE 0, und TRUE ist ein Wert ungleich Null.
Howt Zeichen zu testen
Die CTYPE Funktionen kommen in den meisten praktisch, wenn Eingang Prüfung bestimmt wird, dass die richtigen Informationen eingegeben wurde, oder ziehen erforderlichen Informationen aus Schrott. Der Code in Text Statistik zeigt, wie ein Programm Text scannen kann, auszureißen bestimmte Attribute, und dann eine Zusammenfassung dieser Informationen angezeigt werden soll.
TEXT STATISTIK
# include # include int main () {char Ausdruck [] = "Wenn im Verlauf der menschlichen Ereignisse, wird es notwendig, für ein Volk, die politischen Bande zu lösen, die es mit einem anderen verbunden haben, und unter den Mächten der Erde zu übernehmen die getrennte und gleiche Station die Gesetze der Natur, auf die und von der Natur Gott sie berechtigen, eine anständige Bezug auf die Meinung der Menschheit verlangt, dass sie die Gründe darlegt, die sie an die Trennung veranlassen. "- int index, alpha, blank, punct-alpha = blank = punct = 0 - / * sammeln Daten * / index = 0-while(phrase[index]){if(isalpha(phrase[index]))alpha++-if(isblank(phrase[index]))blank++-if(ispunct(phrase[index]))punct++-index++-}/* Druckergebnisse * / printf ( ""% s " n", eine Phrase) -puts ( "Statistik") - printf ( "% d Buchstaben n", alpha) -printf ( "% d Rohlinge n ", blank) -printf ("% d Satzzeichen n ", punct) -return (0) -}
Text Statistiken kann lange erscheinen, aber es ist nicht- der Phrase [] string bei Line 6 erklärt kann alles, was Sie sein mögen - einen beliebigen Text, ein Gedicht oder ein schmutziges limerick. Es sollte lang genug sein, ein paar Brocken interessante Charaktere zu haben. Beachten Sie, dass, obwohl der Text umbrochen und Einzüge in diesem Text, sollten Sie nur in Ihrem Code eine lange Textzeile eingeben.
Dieser Code auch tut ein Bande Initialisierung:
alpha = blank = punct = 0-
Da jede dieser Variablen müssen auf 0 gesetzt werden, verwenden Sie mehrere Zuweisungsoperatoren auf der gleichen Linie und erreichen die Aufgabe, auf einen Schlag.
Das Fleisch der Bedienung des Programms erfolgt mit dem Daten Kommentar zu sammeln beginnen. Eine while-Schleife die Schritte durch jedes Zeichen in der Zeichenfolge. Die Bedingung für die while-Schleife ist Ausdruck [index]. Diese Auswertung ist für jedes Zeichen in dem Array mit Ausnahme des letzten einen wahren, das Nullzeichen, die auf FALSE ausgewertet wird und stoppt die Schleife.
CTYPE Funktionen werden verwendet, wenn Aussagen wie jedes Zeichen in den Zeilen ausgewertet wird 17, 19 und 21. In if-else-Tests müssen jedes Zeichen überprüft werden. Wenn eine positive oder TRUE Übereinstimmung gefunden wird, wird eine Zählervariable erhöht.
Übung 1: Geben Sie den Quellcode von Text Statistiken in Ihren Editor. Erstellen und ausführen.
Übung 2: Ändern Sie den Quellcode von Text Statistiken, so dass auch Tests gemacht werden für Groß- und Kleinbuchstaben zu zählen. Zeigen Sie auch diese Ergebnisse.
Übung 3: Fügen Sie den Code in Ihre Lösung 2 zu Übung, so dass eine endgültige Tally aller Zeichen im Text (die Länge des Textes) als die endgültige Statistik angezeigt wird.
Wie Zeichen zu ändern
Die CTYPE Funktionen, die mit zu beginnen, werden verwendet, um Zeichen zu konvertieren. Die häufigste dieser Funktionen sind toupper () und tolower (), die sich als nützlich erweisen, wenn der Eingang zu testen. Als Beispiel betrachten wir die typische yorn Problem, in A Yorn Problem dargestellt.
Ein YORN PROBLEM
# include # include int main () {char Antwort-printf ( "Möchten Sie den Mond zu sprengen so?") -scanf ( "% c", Antwort) Annehmen- = toupper (Antwort) -wenn (Antwort == ' Y ') puts ( "BOOM!") - elseputs ( "Der Mond ist sicher") - return (0) -}
Yorn ist für eine Ja-oder-Nein Situation Programmierer sprechen: Der Benutzer wird aufgefordert, Y für Ja oder N für Nein. Ist die Person Y oder y eingeben eingeben müssen? Oder sie können Typ N oder n oder würde jedes nicht-Y-Taste Nein berücksichtigt werden?
In einer Yorn Problem, Zeile 10 verwendet toupper (), um die Eingabe von Zeichen in Großbuchstaben zu konvertieren. Auf diese Weise, wenn nur eine einzige Bedingung ist erforderlich für Y oder Y-Eingang zu testen.
Übung 4: Erstellen Sie ein neues Projekt mit dem Quellcode in A Yorn Problem gezeigt. Erstellen und ausführen.
Übung 5: Ändern Sie den Quellcode, so dass Text angezeigt wird, wenn der Benutzer weder Y noch N.
Übung 6: Schreiben Sie ein Programm, das alle Großbuchstaben in einer Reihe von Textänderungen in Kleinbuchstaben und ändert die Kleinbuchstaben in Großbuchstaben geschrieben. Zeigen Sie die Ergebnisse.