Funktionen für die Zeichenfolge in C ++ Handhabung

Funktionen für die Zeichenfolge in C ++ Handhabung
4.2 (84%) 10 Stimmen




функции 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:

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

  1. Guten Tag. Скажите пожалуйста, почему когда объединяем две строки и второму символьному массиву задаем длину массива, beispielsweise

    , то в этом случае второй массив не объединяется с первым?

  2. Объясните, bitte, почему в примере с объединением строк
    int count1 = 0; // для индекса ячейки где хранится ‘\0первой строки
    während (someText1[count1] != 0)
    мы пишем “someText1[count1] != 0” und nicht “someText1[count1] != ‘\0′”?
    Мы же вроде бы ищем элемент окончания символьной строки ‘\0’? При чем здесь ноль?
    Хотя должен заметить, у меня а Коудблоксе работает и с нулем

  3. Уважаемый автор!
    По-моему, в первом примере сравнений строк пропущена директива препроцессору #include

Hinterlasse eine Antwort

Platz Code in Tags: <pre class="lang:c ++ dekodieren:true ">DEIN CODE</Vor>