C++ Função de string: strcpy(), strcat(), strlen(), strcmp() Exemplo

O que é uma Corda?

Uma string é uma sequência de caracteres. UM C++ string é um objeto da classe std::string. Os caracteres são sequências armazenadas de bytes com acesso permitido a um único byte de caractere.

C++ strings alocam memória dinamicamente. Mais memória pode ser alocada para a string durante o tempo de execução, se necessário. Como não há pré-alocação de memória, não há desperdício de memória. Podemos executar várias operações em strings, incluindo comparações, concatenação, conversão, etc.

Declarando Strings

C++ suporta dois tipos de declarações de string:

  • Cadeia de caracteres estilo C
  • Tipo de classe de string

Cadeia de caracteres estilo C

Este tipo de declaração de string foi introduzido em Linguagem de programação C. C++ continua a apoiá-lo. É simplesmente uma matriz unidimensional de caracteres terminada com um caractere nulo (\0). Uma string terminada em nulo possui caracteres que compõem a string, seguidos por um nulo.

Considere a declaração de string fornecida abaixo:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

A declaração acima cria uma string que forma a palavra John. A palavra possui 4 caracteres, mas a string tem tamanho 5. O espaço extra permite manter o caractere nulo.

Usando a regra de inicialização de array, podemos escrever a instrução acima da seguinte forma:

char name[] = "John";

Observe que você não precisa colocar o caractere nulo no final da constante de string. O C++ o compilador colocará automaticamente '\0' no final da string ao inicializar o array.

std :: string

A norma C++ library fornece a classe string que suporta várias operações de string. Ela é escrita como std::string.

Para usar esta classe, devemos primeiro incluí-la em nosso espaço de trabalho usando o pré-processador #include conforme mostrado abaixo:

#include<string>

A seguir, podemos declarar nossa string usando a palavra-chave string. Por exemplo:

string name = "John";

A instrução acima criará uma string chamada name para conter o valor John.

Acessando valores de string

In C++, podemos acessar os valores da string usando o nome da string. Por exemplo:

#include <iostream>
using namespace std;
int main() {
	char name[5] = { 'J', 'o', 'h', 'n', '\0' };
	cout << "String value is: ";
	cout << name << endl;
	return 0;
}

Saída:

Acessando valores de string

Aqui está uma captura de tela do código:

Acessando valores de string

Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
  4. Declarar uma sequência de caracteres e dar-lhe o nome name. A string armazenará o valor John. O espaço extra armazenará o caractere nulo.
  5. Imprimindo algum texto no console.
  6. Imprimindo o valor da string chamada name no console.
  7. A função main() deve retornar um valor se o programa funcionar bem.
  8. Fim do corpo da função main().

Aqui está outro exemplo usando o C++ classe de string padrão:

#include <iostream>
#include <string>
using namespace std;
int main() {

	string name = "Guru99";
	
	cout << "The name is : " << name << endl;

	return 0;
}

Saída:

Acessando valores de string

Aqui está uma captura de tela do código:

Acessando valores de string

Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo a classe de string padrão em nosso código.
  3. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  4. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
  5. Declarando uma string e dando a ela o nome name. A string armazenará o valor Guru99.
  6. Imprimindo o valor do nome da string junto com algum texto no console.
  7. A função main() deve retornar um valor se o programa funcionar bem.
  8. Fim do corpo da função main().

Funções de string em C++

Freqüentemente, você desejará manipular strings. C++ fornece uma ampla gama de funções que você pode usar para isso. Essas funções são definidas na classe CString, portanto, temos que incluí-las em nosso código para podermos utilizar as funções. Vamos discutir alguns:

strcpy()

Esta é a função de cópia de string. Ele copia uma string em outra string.

Sintaxe:

strcpy(string1, string2);

Os dois parâmetros para a função, string1 e string2, são strings. A função copiará a string string2 para a string1.

strcat()

Esta é a função de concatenar string. Ele concatena strings.

Sintaxe:

strcat(string1, string2);

Os dois parâmetros da função, string1 e string2, são as strings a serem concatenadas. A função acima irá concatenar a string string2 ao final da string string1.

strlen ()

Esta é a função de comprimento da string. Ele retorna o comprimento da string passada a ele como argumento.

Sintaxe:

strnlen(string1)

O parâmetro string1 é o nome da string cujo comprimento deve ser determinado. A função acima retornará o comprimento da string string1.

strcmp ()

Esta é a função de comparação de strings. É usado para comparação de strings.

Sintaxe:

strcmp(string1, string2);

A função acima retornará 0 se as strings string1 e string2 forem semelhantes, menor que 0 se string1 string2.

Exemplo:

O exemplo a seguir demonstra como usar as funções de string acima:

#include <iostream>
#include <cstring>
using namespace std;
int main() {

	char name1[10] = "Guru99";
	char name2[10] = "John";
	char name3[10];

	int  len;
	strcpy(name3, name1);
	cout << "strcpy( name3, name1) : " << name3 << endl;

	strcat(name1, name2);
	cout << "strcat( name1, name2): " << name1 << endl;

	len = strlen(name1);
	cout << "strlen(name1) : " << len << endl;
	return 0;
}

Saída:

Funções de string em C++

Aqui está uma captura de tela do código:

Funções de string em C++

Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo a classe CString padrão em nosso código.
  3. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  4. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
  5. Declarando uma string de 10 caracteres e dando a ela o nome name1. A string armazenará o valor Guru99.
  6. Declarando uma string de 10 caracteres e dando a ela o nome name2. A string armazenará o valor John.
  7. Declarando uma string de 10 caracteres e dando a ela o nome name3.
  8. Declarando um variável inteira chamado Len.
  9. Copiando a string name1 para a string name3.
  10. Imprimindo o valor da string name1 junto com algum texto no console. Deve imprimir Guru99.
  11. Concatenando as strings name2 ao final da string name1. O valor de name1 agora é Guru99John.
  12. Imprimindo o valor da string name1 junto com algum texto no console. Deve imprimir Guru99John
  13. Determinar o comprimento da string chamada name1 e atribuir o valor do comprimento à variável len.
  14. Imprimindo o valor da variável len junto com algum outro texto no console.
  15. A função main() deve retornar um valor se o programa funcionar bem.
  16. Fim do corpo da função main().

Resumo

  • Uma string é uma sequência de caracteres.
  • Strings pertencem à classe de string padrão em C++.
  • Podemos declarar strings usando a string de caracteres do estilo C ou a classe de string padrão.
  • A função strcpy() copia uma string em outra.
  • A função strcat() concatena duas strings.
  • A função strlen() retorna o comprimento de uma string.
  • A função strcmp() compara duas strings.