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:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- 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().
- 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.
- Imprimindo algum texto no console.
- Imprimindo o valor da string chamada name no console.
- A função main() deve retornar um valor se o programa funcionar bem.
- 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:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo a classe de string padrão em nosso código.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- 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().
- Declarando uma string e dando a ela o nome name. A string armazenará o valor Guru99.
- Imprimindo o valor do nome da string junto com algum texto no console.
- A função main() deve retornar um valor se o programa funcionar bem.
- 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:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo a classe CString padrão em nosso código.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- 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().
- Declarando uma string de 10 caracteres e dando a ela o nome name1. A string armazenará o valor Guru99.
- Declarando uma string de 10 caracteres e dando a ela o nome name2. A string armazenará o valor John.
- Declarando uma string de 10 caracteres e dando a ela o nome name3.
- Declarando um variável inteira chamado Len.
- Copiando a string name1 para a string name3.
- Imprimindo o valor da string name1 junto com algum texto no console. Deve imprimir Guru99.
- Concatenando as strings name2 ao final da string name1. O valor de name1 agora é Guru99John.
- Imprimindo o valor da string name1 junto com algum texto no console. Deve imprimir Guru99John
- Determinar o comprimento da string chamada name1 e atribuir o valor do comprimento à variável len.
- Imprimindo o valor da variável len junto com algum outro texto no console.
- A função main() deve retornar um valor se o programa funcionar bem.
- 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.