Klassen String und wstring. Teil 5

Bewerten Sie diesen Artikel




c ++ Anfänger, String-Klasse, wstring Klasse, контейнеры C ++ STL , Standard Template Library, c ++ BehälterDie String-Klasse C ++ Standard-Bibliothek ist gut bekannt und leicht verwenden. Aber nicht jeder und denken nicht immer über die Tatsache,, die Klasse Schnur, mit einigen Unterschieden im Detail - das ist der Behälter Vektor: Vektor<verkohlen> . Wahrheit, Er ergänzt bestimmte Funktionen (aber dieser Code und Sie werden in der Lage zu schreiben):

  • Verfahren Größe() zadublirovan методом Länge(). Sie sind völlig identisch, aus Gründen der Bequemlichkeit. Nur um eine natürliche Leitungslänge haben, welche Größe;

  • Definierte überladene Operatoren +, += dass die Rückkehr Verkettung (Gewerkschaft) Zeit;

  • definitiv Designer, initialisiert Schnur wenn Sie den Anfangswert der Zeichenfolge im Format ASCIIZ erstellen (verkohlen* - Ein Zeiger auf ein Zeichen-Array in C-Stil auf Null endet,);

  • bestimmte Verfahren c_str(), welche gibt einen Zeiger auf den internen Inhalt der Zeichenfolge in dem Format ASCIIZ. Da es sich um die innere Bedeutung, es kann verwendet werden,, aber nicht versuchen, es zu ändern. Das wird nicht gut enden.

Insgesamt verhalten sich genau die gleiche Linie wie der Rest der Vektor, und für sie geltenden alle Operationen auf Vektoren. Verstehen, das ist eine Klasse Schnur (Vektor<verkohlen>) kann es sich leisten eine Reihe von unerwarteten Effekte zu erzeugen. beispielsweise, weil die Null-Zeichen ist nicht Vektor<verkohlen> keine besondere Bedeutung (Im Gegensatz zu der Linie C), то его тоже вполне можно «заталкивать» в конец Schnur. Тем самым можно поместить в единственную переменную Schnur eine ganze Reihe von C-Strings oder sogar der ganze Text.

hier ist, wie in ähnlicher Weise zu setzen alle Set Umgebungsvariablen (Umwelt) Betriebssystem ein Variable Schnur:

Notiz: Hier haben wir eine der mehr zulässig bildet die Hauptfunktionen des Programms Main() – 3-m Parameter, der ein Array von Zeigern Strings (verkohlen*) Umgebungsvariablen (Umwelt). Ein Zeichen für das Ende einer Reihe von Strings envp Es ist ein Zeiger NULL (diejenigen. Betriebssystem-Dokumentation).

Ergebnis:String-Klasse, wstrting Klasse, контейнеры C ++ STL , Standard Template Library, c ++ Behälter

Was ist mit der Art der wstring? wstring - Das Äquivalent Vektor<wchar_t> , Vektor "breit", lokalisierte Zeichen, Vertreter der internationalen Zeichencodierung Unicode. Die Analyse der Inhalte (Suche, Wortauswahl, Zeilenumbrüche usw.) Russischsprachigen oder jede andere Linie (Chinesisch Beispiel) Sie kann nur in dem Format durchgeführt werden wtring (nicht Schnur). При этом необходимо предварительно установить правильную локаль для программы (die Standard-Locale “C” Er geht davon aus nur ASCII-Zeichen in 7-Bit-Darstellung). Für IO wstring dargebotener Ströme, beziehungsweise WCIN und wcout, statt Gin und cout, vorgesehen für Schnur. Es wird als Anzeige geschrieben.

Als Illustration betrachten einen lokalisierten String-Analyse wstring zum Thema, ob es sich um ein Palindrom.

Leerzeichen und Interpunktion sind für Vergleiche ignoriert:

Der Buchstabe L vor einer Zeichenkonstante ist, dass die Zeile enthält mehr , einem breiten Zeichen geschrieben wchar_t

Ergebnis:String-Klasse, wstrting Klasse, контейнеры C ++ STL , Standard Template Library, c ++ Behälter

Lokalisierung - das ist ein ganz anderes Thema, die uns führen würde, von unserem Hauptthema entfernt. Diskussion der Lokalisierung und breiten Zeichen in C / C ++ können sein lesen Sie hier.

sicherlich, dieser Teil ist relevant folgende Fakten zu beachten, in Bezug auf alle Arten von STL-Containern. Wenn Sie einen Container Konstruktor ohne Parameter erstellen, erstellt einen leeren Behälter, Mehr enthält kein Element (Rohling für Zukunft den Behälter füllen). Die Größe des Behälters (Verfahren Größe(), oder Länge() für den Zeitraum) Null. Aber effektiver, in Bezug auf die Leistung, Inspizieren Behälter für Vakuumverfahren leer(), die in allen Arten von Behältern vorhanden ist.

Newsletter neue Lektionen über die Programmierung:

Öl

Etwa Öl

praktische Erfahrungen über die Softwareentwicklung 40 Jahre. Lehrer Globale Logik internationales Softwareunternehmen. IBM Developer Works Permanent Autor von Publikationen. Wissenschaftliche Herausgeber der Computerliteratur-Verlag "Symbol-Plus", Sankt Petersburg.

5 Gedanken zu "Klassen String und wstring. Teil 5

  1. Спасибо автору за статьи.
    Но у меня вопроспочему вы не заключаете оператор условия в фигурные скобки? Это ведь не очень читабельно. beispielsweise:

    so:

    Второй вариант однозначно нагляднее

    1. deshalb, что вопрос форматирования кодадело вкуса, предпочтений, и на этот счёт есть достаточно много unterschiedlich мнений.

      P.S. Юное дурачьё (например на Хабрахабр) гордо называет это кодестайл и делают из этого фетиш, самоцель. Но программный код пишется не для эстетического удовольствия (как красивше скобочки расставить), а для того, чтобы он безукоризненно работал. Но об этом, том что это Maschinenbau специальность, а не эстетическая забава, в последние лет 10 как-то стали забывать.

      1. Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.
        Мартин Фаулер

        Видите лиесли Вы пишете код для компьютера, для достижения собственных целей и для собственного удовлетворениято пожалуйста, никто не запрещает и не сказал бы Вам ничего против, но почему-то этот мне и людям приходится видеть этот код, читать его
        В последнее время чтение кода людьми и понимание написанного играет ключевую роль в написании программных систем, люди меняются, а разрабатывать продукт нужно продолжать, хотя конечно, как я и сказал ранее, это не относится если Вы пишете код только в своём проекте над которым не работают другие люди.

        p/s:
        в данной ситуации, действительно лишь дело вкуса ставить скобочки или нет, я пишу лишь по поводу Вашего ответа.

      2. Dmitry, ещё раз повторюдля лучшей усвояемости: da несколько разных стилей форматирования кода C/C++. И ни один из них не лучше и не хуже остальных.
        Мне довелось работать в нескольких разработческих софтверных компаниях, у которых были совершенно разные корпоративные требования (кодестайл). Так что стиль нужно выбирать тот, который используется в текущем проекте.

Hinterlasse eine Antwort

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