HOWTO · C++
Encontrar la longitud de una cadena en C++
Este artículo demuestra cómo encontrar la longitud de una cadena en C++
En esta página
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