C++ Funções de string: strcpy(), strcat(), strlen(), strcmp()

⚡ Resumo Inteligente

C++ Funções de string como strcpy, strcat, strlen e strcmp permitem que programas copiem, unam, meçam e comparem textos. Este recurso explica o que é uma string, como declarar strings no estilo C e strings do tipo std::string, acessar seus valores e aplicar funções básicas de string com exemplos.

  • 🔤 Definição Essencial: Uma string é uma sequência de caracteres; uma C++ string é um objeto da classe std::string.
  • 🧱 Duas Declarações: C++ Suporta matrizes de caracteres no estilo C terminadas por '\0' e o tipo de classe std::string mais seguro.
  • 📥 Acessando valores: As strings são lidas e impressas por nome, como demonstrado com arrays de caracteres e std::string.
  • 🛠️ Funções de string: strcpy copia, strcat concatena, strlen mede o comprimento e strcmp compara duas strings.
  • 📦 Cabeçalho obrigatório: As funções de string em C residem no cabeçalho cstring, que deve ser incluído antes do uso.

C++ Funções de String

O que é uma Corda?

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

C++ As strings alocam memória dinamicamente. Mais memória pode ser alocada para a string durante a execução, se necessário. Como não há pré-alocação de memória, não há desperdício de memória. Podemos realizar diversas operações em strings, incluindo comparação, 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

Esse tipo de declaração de string foi introduzido no Linguagem de programação C. C++ continua a dar suporte a isso. É simplesmente uma matriz unidimensional de caracteres terminada com um caractere nulo (\0). Uma string terminada em nulo tem os 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 tem 4 caracteres, mas a string tem um tamanho de 5. O espaço extra permite armazenar 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 não é necessário colocar o caractere nulo no final da constante de string. C++ o compilador colocará automaticamente '\0' no final da string ao inicializar o array.

std :: string

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

Para usar essa classe, primeiro precisamos incluí-la em nosso espaço de trabalho usando o pré-processador #include, como 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

Code Explicação:

  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 a lógica do programa deve ser adicionada. 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

Code Explicação:

  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 a lógica do programa deve ser adicionada. O { marca o início do corpo da função main().
  5. Declarando uma string e atribuindo 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++ Oferece uma ampla gama de funções que você pode usar para isso. Essas funções são definidas em O cabeçalho é necessário para que possamos usar as funções. Vamos discutir algumas delas:

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 da função, string1 e string2, são strings. A função copiará a string string2 para 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 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:

strlen(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, um valor menor que 0 se string1 for menor que string2 e um valor maior que 0 se string1 for maior que 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++

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o padrão cabeçalho 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 a lógica do programa deve ser adicionada. O { marca o início do corpo da função main().
  5. Declarando uma string de 10 caracteres e atribuindo 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 "name3" junto com algum texto no console. Deve imprimir: Guru99.
  11. Concatenando a string name2 ao final da string name1. O valor de name1 agora é Guru99João.
  12. Imprimindo o valor da string "name1" junto com algum texto no console. Deve imprimir: Guru99João.
  13. Determinar o comprimento da string chamada name1 e atribuir o valor desse comprimento à variável len.
  14. Imprimindo o valor da variável len juntamente 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().

Perguntas Frequentes

Sim. Assistentes de IA podem converter arrays de caracteres em std::string, atualizar funções relacionadas e explicar os benefícios de segurança. Os desenvolvedores ainda devem revisar as alterações para verificar casos extremos, tamanhos de buffer e comportamento esperado.

Sim. As ferramentas de IA geram exemplos práticos, explicam o comportamento de strcpy e strcat e sinalizam riscos de estouro de buffer. Isso acelera a compreensão, mas executar o código você mesmo continua sendo a melhor maneira de confirmar o comportamento.

A classe `std::string` gerencia a memória dinamicamente e fornece operações integradas como concatenação e comparação. Strings no estilo C são arrays de caracteres fixos terminados por '\0' que exigem gerenciamento manual de memória e são mais propensas a erros.

Elas podem causar estouros de buffer se o array de destino for muito pequeno. Alternativas mais seguras incluem strncpy, strncat ou simplesmente usar operações de std::string, que gerenciam a memória automaticamente e reduzem esses riscos.

Resuma esta postagem com: