Tudo o que você precisa saber sobre strings em C ++



Este artigo fornecerá um conhecimento detalhado e abrangente de Strings em C ++ e também fornecerá exemplos de várias operações.

O termo significa uma sequência ordenada de caracteres. Uma sequência de caracteres pode ser representada usando um objeto de uma classe em C ++. A classe que fornece uma definição para fazer isso é chamada de classe String. A classe String armazena os caracteres como uma sequência de bytes com a funcionalidade de permitir o acesso ao caractere de byte único. Em C ++, os delimitadores delimitadores são aspas duplas. Neste artigo “Strings in C ++”, irei discutir os seguintes tópicos:

Diferença de classe de string e array de caracteres

Classe string Matriz de personagens
A classe String é uma classe que define objetos que podem ser representados como um fluxo de caracteresA matriz de caracteres é simplesmente uma matriz de caracteres.
No caso de strings, a memória é alocada dinamicamente, portanto, mais memória pode ser alocada em tempo de execução sob demandaO tamanho da matriz de caracteres deve ser alocado estaticamente, portanto, mais memória não pode ser alocada em tempo de execução, se necessário
A classe String define várias funcionalidades que permitem operações múltiplas em strings.A matriz de caracteres não oferece muitas funções embutidas para manipular strings
As strings são mais lentas quando comparadas à implementação do que a matriz de caracteres.A implementação de uma matriz de caracteres é Mais rápido.

Declarar e inicializar strings em C ++

strings-in-c++A inicialização da string em C ++ é muito simples! Podemos usar qualquer um dos seguintes métodos.





usando namespace std string std_string

ou

std :: string std_string
#include usando namespace std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Olá por st' std :: string std_st = 'Olá por std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Resultado:



Hello by ch Hello by st Hello by std_st

Neste exemplo, mostramos a matriz de caracteres (ch) e a string clmétodos de inicialização ass (st e std_st). Primeiro, usamos o método de matriz de caracteres definindo uma matriz de caracteres ch [12] que contém 12 elementos e termina com um caractere nulo. Na segunda parte, usamos um método de classe string.

Operações em Strings em C ++

A vantagem de usar a classe string é que existem várias funções internas em C ++ para manipulá-las. Isso torna a programação fácil e eficaz. Vamos pegar certas funções importantes de manipulação de strings e entendê-las examinando alguns exemplos.

Tamanho da corda: Os métodos size () e length () podem ser usados ​​para retornar o tamanho do objeto.



custo<< st.length() <

Resultado:

11 11

Concatenação de strings: Podemos concatenar duas ou mais strings simplesmente usando o operador + entre eles

string new_string = st + 'e' + std_st cout<< new_string <

Resultado:

Hello by st e Hello by std_st

Anexando Strings: A função de membro da classe .append (string) pode ser usada para concatenar e anexar uma string em um local de caractere específico na string. Se um programador colocar str.append (str1, p, n), isso significa que n número de caracteres da posição p na string str1 será anexado ao final de str.

string str = 'Gosto de aprender' string str1 = 'Python, C ++ ou C' str.append (str1, 8, 3) cout<< str << endl

Resultado:

Eu gosto de aprender C ++

Pesquisando strings: Podemos usar a função-membro find () para encontrar a primeira ocorrência de uma string dentro de outra. find () irá procurar a agulha de barbante dentro do palheiro começando da posição pos e retornará a posição da primeira ocorrência da agulha. A função rfind () funciona de forma semelhante, exceto que retorna a última ocorrência da string passada.

java esperar e notificar exemplo
string haystack = 'Olá, mundo!' agulha de corda = 'o' cout<< haystack.find(needle)<

Resultado:

4 4 7 4294967295

O primeiro comando cout simplesmente imprimirá “4”, que é o índice da primeira ocorrência de “o” na string do palheiro. Se quisermos o “o” em “World”, precisamos modificar “pos” para apontar após a primeira ocorrência. haystack.find (agulha, 4) retornaria novamente 4, enquanto haystack.find (agulha, 5) retornaria 7. Se a substring não for encontrada, find () retorna std :: string :: npos.

Npos é um valor especial igual ao valor máximo representável pelo tipo size_type. Aqui está 4294967295. Geralmente, é usado como indicador de fim de string pelas funções que esperam um índice de string ou como indicador de erro pelas funções que retornam um índice de string.

Este código simples pesquisa uma string para todas as ocorrências de “C ++” em str2 e imprime suas posições:

string str2 = 'C ++ é uma linguagem de programação orientada a objetos e inclui classes, herança, polimorfismo, abstração de dados e encapsulamento. C ++ permite o tratamento de exceções e sobrecarga de funções que não são possíveis em C.C ++ é uma linguagem poderosa, eficiente e rápida. ' for (string :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Resultado:

Encontrada ocorrência de 'C ++' na posição 0 Encontrada ocorrência de 'C ++' na posição 132 Encontrada ocorrência de 'C ++' na posição 217
# incluir usando namespace base de classe padrão {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // Ligação tardia (RTP) ptr-> fun_3 () // Ligação tardia (RTP) ptr-> fun_4 () // Ligação antecipada, mas esta chamada de função é // ilegal (produz erro) porque o ponteiro // é de tipo de base e função é de // classe derivada // p-> fun_4 (5)}

Resultado:

função de classe base 1 função de classe derivada 2 função de classe base 3 função de classe base 4

Com isso, chegamos ao final deste artigo sobre Strings em C ++. Espero que você tenha entendido as várias operações que podem ser realizadas nele. Se você deseja aprender mais, confira o Treinamento em Java da Edureka, uma empresa confiável de aprendizado online. Edureka's O treinamento e o curso de certificação são projetados para treiná-lo nos conceitos básicos e avançados do Java, juntamente com várias estruturas Java, como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.