Encontre o comprimento de uma string em C++

Jinku Hu 12 outubro 2023
  1. Use a função length para encontrar o comprimento de uma string em C++
  2. Use a função size para encontrar o comprimento de uma string em C++
  3. Use o loop while para encontrar o comprimento de uma string em C++
  4. Use a função std::strlen para encontrar o comprimento de uma string em C++
Encontre 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
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Artigo relacionado - C++ String