Como Iterar a través de una cadena en C++
- Usar el bucle basado en el rango para iterar a través de una cadena en C++
-
Usa el bucle
for
Iterar a través de una cadena en C++
Este artículo presentará múltiples métodos sobre cómo iterar a través de una cadena mientras se mantiene la cuenta del índice en C++.
Usar el bucle basado en el rango para iterar a través de una cadena en C++
El estilo moderno del lenguaje C++ recomienda la iteración basada en el rango para las estructuras que lo soportan. Mientras tanto, el índice actual puede ser almacenado en una variable separada de tipo size_t
que se incrementará en cada iteración. Nótese que el incremento se especifica con el operador ++
al final de la variable, porque poniéndolo como prefijo se obtendría un índice que empieza con 1. El siguiente ejemplo muestra sólo la parte corta de la salida del programa.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string text = "They talk of days for which they sit and wait";
size_t index = 0;
for (char c : text) {
cout << index++ << " - '" << c << "'" << endl;
}
return EXIT_SUCCESS;
}
Resultado:
0 - 'T'
1 - 'h'
2 - 'e'
...
43 - 'i'
44 - 't'
Usa el bucle for
Iterar a través de una cadena en C++
Tiene elegancia y poder en el convencional for
bucle, ya que ofrece flexibilidad cuando el ámbito interno implica operaciones de array / array multidimensional. También es la sintaxis de iteración preferida cuando se usan técnicas avanzadas de paralelización como el estándar OpenMP.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string text = "They talk of days for which they sit and wait";
for (int i = 0; i < text.length(); ++i) {
cout << i << " - '" << text[i] << "'" << endl;
}
return EXIT_SUCCESS;
}
Resultado:
0 - 'T'
1 - 'h'
2 - 'e'
...
43 - 'i'
44 - 't'
Alternativamente, podemos acceder a los caracteres individuales de la cadena con la función miembro at()
.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string text = "They talk of days for which they sit and wait";
for (int i = 0; i < text.length(); ++i) {
cout << i << " - '" << text.at(i) << "'" << endl;
}
return EXIT_SUCCESS;
}
Resultado:
0 - 'T'
1 - 'h'
2 - 'e'
...
43 - 'i'
44 - 't'
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArtículo relacionado - C++ String
- Encuentre el primer carácter repetido en una cadena en C++
- Encuentre la subcadena común más larga en C++
- Poner en mayúscula la primera letra de una cadena en C++
- Comparación de cadenas y caracteres en C++
- Eliminar el último carácter de una cadena en C++
- Obtener el último carácter de una cadena en C++