Como calcular o tamanho de uma cadeia de texto em C++ sem usar a função interna

Escrito por g.s. jackson | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como calcular o tamanho de uma cadeia de texto em C++ sem usar a função interna
Para contar os caracteres de um texto sem a função length(), é necessário transformá-los em estilo C (Jupiterimages/Photos.com/Getty Images)

Normalmente, um programador pode determinar o tamanho de uma sentença (ou cadeia de texto) em um programa em C++ com uma chamada ao método "length()". No entanto, a função nem sempre esteve disponível. Para contar os caracteres sem uma função interna, é necessário entender o que são as cadeias de texto, os arrays de caracteres em C e como trabalhar com eles.

Outras pessoas estão lendo

Strings em C++ e em C

Em C++, o tipo de dado "string" representa sentenças, frases ou palavras. No entanto, originalmente, era considerado uma string "estilo C". Na linguagem C original, os programadores armazenavam texto como coleções (ou "arrays") de caracteres. Portanto, em C++ uma declaração é do tipo:

string str = "Ola";

No C, a mesma declaração fica assim:

char str[50] = "Ola";

Aqui, "str" representa um array de 50 caracteres. Além do mais, como os strings em C são simplesmente arrays, terminam em um caractere nulo ("\0") que indica o fim do texto.

O método "c_str()"

Uma coisa interessante sobre os strings em C++ é que são uma classe e, como tal, contêm métodos para trabalhar sobre eles. Um deles, "c_str()", devolve um string estilo C que representa o equivalente em C++. Isso significa que o string se transformará em um array de caracteres com o "\0" no final.

Copiando o string de C

Para poder fazer alguma coisa com o string obtido com "c_str()", o programador deverá colocá-lo em um array de caracteres. Isso requer o método "strcpy".

include <string>

include <cstring>

include <iostream>

using namespace std;

string str = "Um string"; char str2[50];

strcpy(str2, str.c_str())

Agora, a representação estilo C de "str" será copiada no array de caracteres "str2" com o nulo no final.

Contando os caracteres

Agora que o programador possui uma cópia em array do string com o caractere nulo que indica o seu final, só é necessário contar os caracteres até chegar no "\0":

int i = 0;

while(str2[i] != "\0"){ i++ }

cout << i + 1;

O laço "while" verifica cada caractere a partir do início (a posição 0) até chegar no indicador de final. Em seguida, o programa exibe "i+1" porque o índice começa em 0. No exemplo, o valor retornado será 9.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível