Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Zugriff auf und Manipulation von String-Elementen | Textdatentyp
C++ Datentypen
course content

Kursinhalt

C++ Datentypen

C++ Datentypen

1. Einführung
2. Numerische Datentypen
3. Textdatentyp
4. Andere Datentypen und Konzepte

book
Zugriff auf und Manipulation von String-Elementen

Indizierung eines Strings

Wir können auf die Elemente eines string (die im Wesentlichen char-Zeichen sind) mit Hilfe der eckigen Klammern [] zugreifen, ähnlich wie bei Arrays. Dies ermöglicht es uns auch, ein Zeichen an einer bestimmten Position zu ersetzen.

h

indexing

copy
12
string str = "Cpdefinity"; // Cpdefinity str[1] = 'o'; // Codefinity

Hinweis

Das Indizieren in einem string beginnt bei null, genau wie bei Arrays.

Die Länge des Strings

Mit dieser Indizierung können Sie versuchen, auf einen falschen Index zuzugreifen (der außerhalb des Bereichs liegt), und der Compiler wird Ihnen nichts darüber mitteilen.

cpp

main

copy
1234567
#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word[12]; // Word's length is 10 }

Wie Sie sehen können, ist die Ausgabe unerwartet, und C++ gibt keine Warnung über das Problem aus. Um dies zu verhindern, können Sie die Methode .length() verwenden, um die Länge eines string zu bestimmen und sicherzustellen, dass der Index innerhalb des gültigen Bereichs liegt.

cpp

main

copy
123456789101112
#include <iostream> int main() { std::string word = "Codefinity"; int index = 12; if (index >= word.length()) std::cout << "The output is unexpected!" << std::endl; else std::cout << word[index]; // Word's length is 10 }

Indizierung mit Methode

Eine andere Möglichkeit der Indizierung ist die Verwendung der .at()-Methode. Um das Zeichen mit dem Index n zu erhalten, können wir die folgende Syntax verwenden:

h

at

copy
1
str.at(n);

Es funktioniert genauso wie str[n], aber es wird ein Fehler ausgelöst, wenn Sie einen Index angeben, der außerhalb des Bereichs liegt.

cpp

main

copy
12345678
#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word.at(12); // word's length is 10 // Try outputting the character with the index 5 }

Übung

Wie bereits erwähnt, können wir die Zeichen innerhalb eines Strings durch Indizierung ersetzen (sowohl mit [] als auch mit .at()). Hier ist ein Beispiel:

cpp

main

copy
123456789
#include <iostream> int main() { std::string word = "Cpdefinitu"; word[1] = 'o'; word.at(word.length() - 1) = 'y'; // length - 1 accesses the last element std::cout << word; }
Aufgabe

Swipe to start coding

Ihre Aufgabe ist es zu überprüfen, ob wir auf diese Weise Zeichen an das Ende eines Strings anhängen können.

  1. Bestimmen Sie den Index des letzten Zeichens in einem String.
  2. Weisen Sie 'y' dem Index Index des letzten Zeichens + 1 von str zu.

Lösung

cpp

solution

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
toggle bottom row

book
Zugriff auf und Manipulation von String-Elementen

Indizierung eines Strings

Wir können auf die Elemente eines string (die im Wesentlichen char-Zeichen sind) mit Hilfe der eckigen Klammern [] zugreifen, ähnlich wie bei Arrays. Dies ermöglicht es uns auch, ein Zeichen an einer bestimmten Position zu ersetzen.

h

indexing

copy
12
string str = "Cpdefinity"; // Cpdefinity str[1] = 'o'; // Codefinity

Hinweis

Das Indizieren in einem string beginnt bei null, genau wie bei Arrays.

Die Länge des Strings

Mit dieser Indizierung können Sie versuchen, auf einen falschen Index zuzugreifen (der außerhalb des Bereichs liegt), und der Compiler wird Ihnen nichts darüber mitteilen.

cpp

main

copy
1234567
#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word[12]; // Word's length is 10 }

Wie Sie sehen können, ist die Ausgabe unerwartet, und C++ gibt keine Warnung über das Problem aus. Um dies zu verhindern, können Sie die Methode .length() verwenden, um die Länge eines string zu bestimmen und sicherzustellen, dass der Index innerhalb des gültigen Bereichs liegt.

cpp

main

copy
123456789101112
#include <iostream> int main() { std::string word = "Codefinity"; int index = 12; if (index >= word.length()) std::cout << "The output is unexpected!" << std::endl; else std::cout << word[index]; // Word's length is 10 }

Indizierung mit Methode

Eine andere Möglichkeit der Indizierung ist die Verwendung der .at()-Methode. Um das Zeichen mit dem Index n zu erhalten, können wir die folgende Syntax verwenden:

h

at

copy
1
str.at(n);

Es funktioniert genauso wie str[n], aber es wird ein Fehler ausgelöst, wenn Sie einen Index angeben, der außerhalb des Bereichs liegt.

cpp

main

copy
12345678
#include <iostream> int main() { std::string word = "Codefinity"; std::cout << word.at(12); // word's length is 10 // Try outputting the character with the index 5 }

Übung

Wie bereits erwähnt, können wir die Zeichen innerhalb eines Strings durch Indizierung ersetzen (sowohl mit [] als auch mit .at()). Hier ist ein Beispiel:

cpp

main

copy
123456789
#include <iostream> int main() { std::string word = "Cpdefinitu"; word[1] = 'o'; word.at(word.length() - 1) = 'y'; // length - 1 accesses the last element std::cout << word; }
Aufgabe

Swipe to start coding

Ihre Aufgabe ist es zu überprüfen, ob wir auf diese Weise Zeichen an das Ende eines Strings anhängen können.

  1. Bestimmen Sie den Index des letzten Zeichens in einem String.
  2. Weisen Sie 'y' dem Index Index des letzten Zeichens + 1 von str zu.

Lösung

cpp

solution

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt