Encontre o comprimento de uma string em C++
-
Use a função
lengthpara encontrar o comprimento de uma string em C++ -
Use a função
sizepara encontrar o comprimento de uma string em C++ -
Use o loop
whilepara encontrar o comprimento de uma string em C++ -
Use a função
std::strlenpara encontrar o comprimento de uma string em C++
Este artigo explicará vários métodos de como encontrar o comprimento de uma string em C++.
Use a função length para encontrar o comprimento de uma string em C++
A biblioteca padrão C++ fornece a classe std::basic_string para aumentar as sequências do tipo char e implementar uma estrutura genérica para armazenar e manipular tais dados. Embora, a maioria das pessoas esteja mais familiarizada com o tipo std::string que é ele mesmo um alias de tipo para std::basic_string<char>. std::string fornece a função interna length para recuperar o comprimento da sequência char armazenada.
#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);
}
Resultado:
string: this is random string oiwaoj
length: 28
Use a função size para encontrar o comprimento de uma string em C++
Outra função embutida incluída na classe std::string é size, que se comporta de forma semelhante ao método anterior. Não leva argumentos e retorna o número de elementos char no objeto string.
#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);
}
Resultado:
string: this is random string oiwaoj
length: 28
Use o loop while para encontrar o comprimento de uma string em C++
Alternativamente, pode-se implementar sua própria função para calcular o comprimento da corda. Nesse caso, utilizamos o loop while para percorrer a string como uma sequência char e incrementar o contador em um a cada iteração. Observe que a função recebe char como argumento e o método c_str é chamado para recuperar esse ponteiro na função principal. O loop para quando o valor do ponteiro não referenciado é igual a 0, e a implementação da string terminada em nulo garante isso.
#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);
}
Resultado:
string: this is random string oiwaoj
length: 28
Use a função std::strlen para encontrar o comprimento de uma string em C++
Finalmente, pode-se recorrer à função de biblioteca de string C da velha escola strlen, que usa um único argumento const char* como nossa função personalizada - lengthOfString. Esses dois últimos métodos podem apresentar falhas quando chamados em sequências char que não terminam com um byte nulo, pois podem acessar a memória fora do intervalo durante o percurso.
#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);
}
Resultado:
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 Facebook