Contenu du cours
Types de Données C++
Types de Données C++
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.
indexing
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.
main
#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.
main
#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 :
at
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.
main
#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 :
main
#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; }
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.
- Déterminez l'index du dernier caractère d'une chaîne.
- Assignez
'y'
à l'index index du dernier caractère + 1 destr
.
Solution
solution
Merci pour vos commentaires !
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.
indexing
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.
main
#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.
main
#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 :
at
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.
main
#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 :
main
#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; }
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.
- Déterminez l'index du dernier caractère d'une chaîne.
- Assignez
'y'
à l'index index du dernier caractère + 1 destr
.
Solution
solution
Merci pour vos commentaires !