Funktionen für die Zeichenfolge in C ++ Handhabung




функции strlen (), strcat (), strcpy (), strcmp () в C++

Nachdem, wie wir sind vertraut mit Strings und Zeichen-Arrays in C ++, Blick auf die am häufigsten verwendeten Funktionen für die Arbeit mit ihnen. Die Lektion wird vollständig in der Praxis gebaut werden. Wir werden ihre eigenen Programme-Analoga zur Behandlung von Linien und parallel zur Verwendung von Standard-Bibliotheksfunktionen schreiben cstring (string.h – in älteren Versionen). Sie sind also über sich selbst zu präsentieren, wie sie funktionieren. Die Standard-Bibliotheksfunktionen cstring sind:

  • strlen() – berechnet die Länge der Zeichenfolge (Anzahl der Zeichen, mit Ausnahme von \0);
  • strcat() – Es kombiniert Strings;
  • strcpy() – Kopien der Symbole von einer Zeile zur anderen;
  • strcmp() – vergleicht zusammen zwei Saiten .

Es ist sicherlich nicht alle Funktionen, nur diejenigen, der an dem Gegenstand bedeckt.

strlen() (Länge der Wörter – Länge)

Unser Programm, welche berechnet die Anzahl der Zeichen pro Zeile:

Um die Zeichen in einer Reihe von unbestimmter Länge berechnen (da der Benutzer gibt es), wir verwendet, um den Zyklus während – Linien 13 – 17. Er geht durch alle Zellen der Anordnung (alle Zeichen der Zeichenfolge) abwechselnd, beginnend mit Null. Wenn zu einem bestimmten Schrittzyklus zu treffen Box ourStr [amountOfSymbol], dass speichert Symbol \0, Bust-Zyklus Pause Symbole und erhöhen den Zähler amountOfSymbol.

So wird der Code aussehen, der Ersatz von unserem Codeabschnitt auf die Funktion strlen():

Wie Sie sehen können, Dieser Funktionscode. Es musste nicht zusätzliche Variablen zu deklarieren und eine Schleife verwenden. Der Ausgabestrom cout wir gingen in die Funktion Zeichenfolge – strlen(ourStr). Es wird vorgeschlagen, dass die Länge der Leitung und zurück zu der Programmnummer. Wie in dem vorherigen Code-Analog, Symbol \0 nicht in der Gesamtzahl der Zeichen enthalten.

Das Ergebnis ist das Programm in der ersten und zweiten ähnlich:

функция strlen () в C++

strcat() (Verkettung von Worten – Verbindung)

Programm, daß das Ende einer Zeile, anhängt die zweite Zeile. Mit anderen Worten – Es verbindet zwei Linien.

Nach Kommentaren im Code sollte alles klar sein. Im Folgenden schreiben wir ein Programm um die gleiche Aktion ausführen, aber unter Verwendung von strcat(). In dieser Funktion werden wir zwei Argumente geben (zwei Linien) – strcat(someText1, someText2); . Die Funktion fügt einen String someText2 auf Linie someText1. Zur gleichen Symbol ' 0' Am Ende someText1 Es wird das erste Zeichen überschreiben someText2. Sie fügt hinzu, auch eine endgültige ' 0'

Die Umsetzung der Vereinigung von zwei Linien, Mit der Standardfunktion, Ich nahm eine Zeile Code im Programm – 14-Reihe.

Ergebnis:

strcat c++, strcat_s c++

Was sollte die Aufmerksamkeit auf den ersten und zweiten Code zahlen – Größe des ersten Zeichens des Arrays sollte für die zweite Anordnung von Zeichen Räumlichkeiten ausreichen. Wenn die Größe nicht ausreicht, – kann Unerwarteter Programmabbruch auftreten, da die Linie aus dem Speicher der Aufnahme, das belegt die erste Reihe. beispielsweise:

In diesem Fall, strokovaya konstant “Erfahren C ++ c us!” Es kann nicht in das Array geschrieben werden someText1. Da gibt es nicht genug Platz, für solche Operationen.

Wenn Sie eine aktuelle Version von Microsoft Visual Studio-Entwicklungsumgebung verwenden, Sie können die folgenden Fehler auftreten:: “Fehler C4996: "strcat’: Diese Funktion oder Variable kann gefährlich sein. Erwägen Sie die Verwendung strcat_s stattdessen. So deaktivieren Sie deprecation, Verwendung _CRT_SECURE_NO_WARNINGS. Siehe Online-Hilfe.” Dies liegt daran,, das hat eine neue, sicherere Version der Funktion entwickelt strcat – Das strcat_s. Sie sorgt sich um, damit es sein Pufferüberlauf (Zeichen-Array, die erzeugte Datensatz zweite Zeile). Umwelt bietet Ihnen eine neue Funktion zu verwenden,, anstelle der veralteten. Lesen Sie mehr über das sein kann auf der MSDN-Website. Dieser Fehler kann auftreten, wenn Sie die Funktion verwenden strcpy, die werden im Folgenden erörtert.

strcpy() (Slowenien Kopie – Kopieren)

Verkaufen Sie eine Zeile nach oben und setzen Sie sie anstelle einer anderen Reihe.

Übernehmen Sie die Standardfunktionsbibliothek cstring:

Versuchen Sie zu kompilieren und zuerst, und ein zweites Programm. Sie werden dieses Ergebnis zu sehen:

strcpy c ++

strcmp() (Slowenien vergleichen – Vergleich)

Diese Funktion ist so ausgelegt,: Sie vergleicht die beiden C-String Zeichen für Zeichen. Wenn die Saiten sind identisch (und Symbole und ihre Anzahl) – die Funktion kehrt zu der Programmnummer 0. Wenn die erste Zeile ist länger als eine Sekunde – kehrt der Programmnummer 1, und wenn weniger, die -1. Anzahl -1 damals, wenn die Länge der Leitungen ist, aber die Linien der Zeichen nicht übereinstimmen.

strcmp c ++ Programm mit strcmp():

strcmp c ++

Teilen auf soziale Netzwerke unsere Artikel mit deinen Freunden, die auch die Grundlagen der Programmierung in C ++ lernen.

Auf unserer Website hat bereits die Möglichkeit zu abonnieren, Benachrichtigung über neue Artikel zu erhalten. Um sich anzumelden – geben Sie Ihre E-Mail unter.

Newsletter neue Lektionen über die Programmierung:

Funktionen für die Zeichenfolge in C ++ Handhabung
4.3 (86.67%) 12 Stimmen

28 Gedanken zu "Funktionen für die Zeichenfolge in C ++ Handhabung

  1. Guten Tag. Bitte sagen Sie mir, Deshalb, wenn kombinieren zwei Zeilen und die zweite Zeichenfeld spezifiziert Arraylänge, beispielsweise

    , dann wird die zweite Anordnung nicht mit dem ersten kombiniert?

    1. es ist nicht wahr.
      Sie haben das Ergebnis kann einfach in someText1 platziert werden[].
      Erhöhen Sie die Größe – was gierig?
      beispielsweise: someText1[ 200 ]

  2. erklären, bitte, warum in Beispiel Reihen Verbindung mit
    int count1 = 0; // für die Zelle, in der der Index wird gespeichert ‚ 0’ erste Reihe
    während (someText1[count1] != 0)
    wir schreiben “someText1[count1] != 0” und nicht “someText1[count1] != ‚ 0′”?
    Wir scheinen für ein Element einer Zeichenkette Ende zu suchen mit ‚ 0‘? Was bedeutet die Null?
    Obwohl ich muss sagen,, Ich habe ein Koudblokse mit Null arbeitet…

    1. Weil die Aufzeichnung ‚ 0’ noch einmal, und Mittel: Byte, Zahlenwert in der gleichen aufgezeichneten 0.
      Diese Aufzeichnungen sind äquivalent.

  3. Lieber Autor!
    Meiner Meinung nach, in dem ersten Vergleichsbeispiel Reihen Richtlinie weggelassen Präprozessor # include

  4. Чета не могу понять
    char xsmibol[2] = {wParam, ‘\0’};
    вот так работает
    ————————–
    А вот так не работает:
    char xsmibol[2];
    xsmibol = {wParam, ‘\0’};

    Говорит 17 27 C:\Users\1\Documents\main1.cpp [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11
    17 12 C:\Users\1\Documents\main1.cpp [Error] assigning to an array from an initializer list
    37 14 C:\Users\1\Documents\main1.cpp [Error] expected primary-expression before ‘)’ token

    Что я делаю не так ?

Hinterlasse eine Antwort

Deine Email-Adresse wird nicht veröffentlicht. erforderliche Felder sind markiert *