Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Accéder et Manipuler les Éléments de String | Type de Données Texte
Types de Données C++
course content

Contenu du cours

Types de Données C++

Types de Données C++

1. Introduction
2. Types de Données Numériques
3. Type de Données Texte
4. Autres Types de Données et Concepts

book
Accéder et Manipuler les Éléments de String

Indexation d'une chaîne

Nous pouvons accéder aux éléments d'une string (qui sont essentiellement des caractères char) en utilisant l'indexation avec des crochets [], similaire aux tableaux. Cela nous permet également de remplacer un caractère à une position spécifique.

h

indexing

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

Remarque

L'indexation dans une string commence à zéro, tout comme dans les tableaux.

La longueur de la chaîne

Avec cette indexation, vous pouvez essayer d'accéder à un mauvais index (qui est hors de portée), et le compilateur ne vous dira rien à ce sujet.

cpp

main

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

Comme vous pouvez le voir, la sortie est inattendue, et C++ ne fournit pas d'avertissement à propos du problème. Pour éviter cela, vous pouvez utiliser la méthode .length() pour déterminer la longueur d'une string et vous assurer que l'index est dans la plage valide.

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 }

Indexation en utilisant la méthode

Une autre façon d'indexer est d'utiliser la méthode .at(). Pour obtenir le caractère avec l'index n, nous pouvons utiliser la syntaxe suivante :

h

at

copy
1
str.at(n);

Cela fonctionne de la même manière que str[n] mais générera une erreur si vous spécifiez un index qui est hors de portée.

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 }

Pratique

Comme mentionné précédemment, nous pouvons remplacer les caractères à l'intérieur d'une chaîne en utilisant l'indexation (à la fois avec [] et .at()). Voici un exemple :

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; }
Tâche

Swipe to start coding

Votre tâche est de vérifier si nous pouvons ajouter des caractères à la fin d'une chaîne de cette manière.

  1. Déterminez l'index du dernier caractère d'une chaîne.
  2. Assignez 'y' à l'index index du dernier caractère + 1 de str.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3
toggle bottom row

book
Accéder et Manipuler les Éléments de String

Indexation d'une chaîne

Nous pouvons accéder aux éléments d'une string (qui sont essentiellement des caractères char) en utilisant l'indexation avec des crochets [], similaire aux tableaux. Cela nous permet également de remplacer un caractère à une position spécifique.

h

indexing

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

Remarque

L'indexation dans une string commence à zéro, tout comme dans les tableaux.

La longueur de la chaîne

Avec cette indexation, vous pouvez essayer d'accéder à un mauvais index (qui est hors de portée), et le compilateur ne vous dira rien à ce sujet.

cpp

main

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

Comme vous pouvez le voir, la sortie est inattendue, et C++ ne fournit pas d'avertissement à propos du problème. Pour éviter cela, vous pouvez utiliser la méthode .length() pour déterminer la longueur d'une string et vous assurer que l'index est dans la plage valide.

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 }

Indexation en utilisant la méthode

Une autre façon d'indexer est d'utiliser la méthode .at(). Pour obtenir le caractère avec l'index n, nous pouvons utiliser la syntaxe suivante :

h

at

copy
1
str.at(n);

Cela fonctionne de la même manière que str[n] mais générera une erreur si vous spécifiez un index qui est hors de portée.

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 }

Pratique

Comme mentionné précédemment, nous pouvons remplacer les caractères à l'intérieur d'une chaîne en utilisant l'indexation (à la fois avec [] et .at()). Voici un exemple :

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; }
Tâche

Swipe to start coding

Votre tâche est de vérifier si nous pouvons ajouter des caractères à la fin d'une chaîne de cette manière.

  1. Déterminez l'index du dernier caractère d'une chaîne.
  2. Assignez 'y' à l'index index du dernier caractère + 1 de str.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt