Wie eine Reihe von Zeichen in C ++ erstellen

Die Elemente eines Arrays in C ++ kann von beliebiger Art sein. Arrays von schwebens, doppelts, und langes sind alle möglich- jedoch Arrays von Zeichen eine besondere Bedeutung haben.

In vielen Fällen sind alle Werte für jedes Element möglich. Behält sich aber C ++ die besondere # 147-Zeichen # 148- 0 als nicht-Charakter. Sie können verwenden ' 0' das Ende eines Zeichenfeldes zu markieren. (Der numerische Wert ' 0' 0 ist, aber die Art der ' 0' ist verkohlen.)

Der Charakter ' Y' ist das Zeichen, y, dessen Oktalwert. Der Charakter ' 0' ist das Zeichen mit einem Wert von 0, andernfalls als Nullzeichen bekannt.

// Displaystring - Ausgang ein Zeichenfeld Standardausgabe // umfassen die MS-DOS-Fenster # #einschließen #einschließen using namespace std - // Prototyp declarationsvoid zeitanzeige (char string []) - int main (int nNumberofArgs, char * pszArgs []) {char charMyName [] = { 'S', 't', 'E', 'p' 'h', 'e', ​​'n', ' 0'} - zeitanzeige (charMyName) -cout lt; lt; Endl - // warten, bis der Benutzer bereit ist, bevor Programm beendet // dem Benutzer zu ermöglichen, das Programm resultscout zu sehen lt; lt; "Drücken Sie die Eingabetaste, um fortzufahren ..." lt; lt; Endl-cin.ignore (10, ' n') - cin.get () - return 0 -} // zeitanzeige - eine Zeichenkette anzuzeigen // ein Zeichen in einer timevoid zeitanzeige (char string []) {for (int i = 0- string [i]! = ' 0'- i ++) {cout lt; lt; String [i] -}}

Die Erklärung von charMyName erklärt die Zeichen mit dem zusätzlichen Null-Zeichen ' 0' am Ende. Das zeitanzeige Programm durchläuft die Zeichen-Array, bis ein Null-Zeichen angetroffen wird.

Die Funktion zeitanzeige () zu verwenden, ist einfacher als ihre displayCharArray () Vorgänger, da es nicht mehr erforderlich ist entlang der Länge des Zeichenfeld zu übergeben. Diese geheime Händedruck von einem Zeichen-Array mit einem Null beendet ist so bequem, dass es in der gesamten Sprache C ++ verwendet wird. C ++ gibt sogar ein solches Array einen besonderen Namen.

EIN Zeichenfolge ist ein terminierten Null-Zeichen-Array. Es ist offiziell als ein bekannter nullterminierten Byte-String, oder NTH. Je einfacher Begriff C-String ist auch zu unterscheiden von der Typ C ++ verwendet String.

Die Wahl der ' 0' wie das abschließende Zeichen war nicht zufällig. Denken Sie daran, dass 0 der einzige numerischer Wert ist, der konvertiert falsch- alle anderen Werte übersetzen zu wahr. Dies bedeutet, dass die für Schleife könnte (und in der Regel ist) geschrieben als

for (int i = 0- string [i] - i ++)

Das ganze Geschäft von nullterminierten Zeichenketten ist so tief verwurzelt in der Sprache C ++ Psyche, die C ++ eine Zeichenfolge in doppelte Anführungszeichen verwendet ein Array von Zeichen automatisch mit ein beendet sein ' 0' Charakter. Im Folgenden sind gleich lautenden Erklärungen:

char szMyName [] = "Stephen" -char szAlsoMyName [] = { 'S', 't', 'E', 'p', 'h', 'e', ​​'n', ' 0'} -

Die Namenskonvention hier verwendet wird, ist genau das, eine Konvention. C ++ ist es egal. Das Präfix sz steht für Null-terminierten String.

Die Saite Stephen ist acht Zeichen lang sein und nicht sieben - das Nullzeichen nach dem n wird angenommen. Die Saite "" ein Zeichen lang ist, bestehend aus nur einem Nullzeichen.

Menü