Encontrar la longitud de una cadena en C++
-
Utilice la función
length
para encontrar la longitud de una cadena en C++ -
Utilice la función
size
para encontrar la longitud de una cadena en C++ -
Utilice el bucle
while
para encontrar la longitud de una cadena en C++ -
Utilice la función
std::strlen
para encontrar la longitud de una cadena en C++
Este artículo explicará varios métodos de cómo encontrar la longitud de una cadena en C++.
Utilice la función length
para encontrar la longitud de una cadena en C++
La biblioteca estándar de C++ proporciona la clase std::basic_string
para aumentar las secuencias tipo char
e implementar una estructura genérica para almacenar y manipular dichos datos. Aunque, la mayoría de la gente está más familiarizada con el tipo std::string
que es en sí mismo un alias de tipo para std::basic_string<char>
. std::string
proporciona una función incorporada de length
para recuperar la longitud de la secuencia char
almacenada.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << str1.length() << endl;
exit(EXIT_SUCCESS);
}
Producción :
string: this is random string oiwaoj
length: 28
Utilice la función size
para encontrar la longitud de una cadena en C++
Otra función incorporada incluida en la clase std::string
es size
, que se comporta de manera similar al método anterior. No toma argumentos y devuelve el número de elementos char
en el objeto de cadena.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << str1.size() << endl;
exit(EXIT_SUCCESS);
}
Producción :
string: this is random string oiwaoj
length: 28
Utilice el bucle while
para encontrar la longitud de una cadena en C++
Alternativamente, uno puede implementar su propia función para calcular la longitud de la cadena. En este caso, utilizamos el bucle while
para recorrer la cadena como una secuencia char
e incrementar el contador en uno en cada iteración. Observe que la función toma char
como argumento, y se llama al método c_str
para recuperar este puntero en la función principal. El bucle se detiene cuando el valor del puntero desreferenciado es igual a 0
, y la implementación de la cadena terminada en nulo lo garantiza.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
size_t lengthOfString(const char *s) {
size_t size = 0;
while (*s) {
size += 1;
s += 1;
}
return size;
}
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << lengthOfString(str1.c_str()) << endl;
exit(EXIT_SUCCESS);
}
Producción :
string: this is random string oiwaoj
length: 28
Utilice la función std::strlen
para encontrar la longitud de una cadena en C++
Por último, se puede recurrir a la función de biblioteca de cadenas de C de la vieja escuela strlen
, que toma un único argumento const char*
como nuestra función definida a medida: lengthOfString
. Estos dos últimos métodos pueden ser defectuosos cuando se llaman en secuencias char
que no terminan con un byte nulo, ya que podrían acceder a memoria fuera de rango durante el recorrido.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << std::strlen(str1.c_str()) << endl;
exit(EXIT_SUCCESS);
}
Producción :
string: this is random string oiwaoj
length: 28
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++