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.h
12string 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.cpp
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.
main.cpp
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 :
at.h
1str.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.cpp
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 :
main.cpp
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; }
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.cpp
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 4.35
Accéder et Manipuler les Éléments de String
Glissez pour afficher le menu
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.h
12string 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.cpp
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.
main.cpp
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 :
at.h
1str.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.cpp
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 :
main.cpp
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; }
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.cpp
Merci pour vos commentaires !
Awesome!
Completion rate improved to 4.35single