Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando Funções de String em C++: strcpy, strcat, strlen, strcmp – Exemplos Práticos

O que é uma String?

Uma string é simplesmente uma sequência de caracteres. Em C++ moderno, geralmente trabalhamos com objetos da classe std::string, que gerencia alocação de memória, redimensionamento e uma série de funções membro úteis automaticamente. Isso elimina a necessidade de gerenciamento manual de buffer e reduz o risco de buffer overflows.

Para fins educacionais, o C++ ainda suporta arrays de caracteres terminados em null no estilo C tradicional. Ambas as abordagens têm seu lugar: use std::string para programação cotidiana, e reserve strings estilo C para APIs legadas ou código de baixo nível crítico para performance.

Declarando Strings

String de Caracteres Estilo C

Exemplo:

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

Ou mais concisamente:

char nome[] = "John"; // compilador insere o '\0' terminador

std::string

Para usar std::string, inclua o cabeçalho e declare uma variável:

#include <string>
std::string nome = "John";

Acessando Valores de String

Abaixo um programa simples de console que imprime uma string estilo C e um valor std::string.

#include <iostream>
#include <string>
using namespace std;
int main() {
    char cNome[5] = "John"; // string estilo C
    string cppNome = "Guru99"; // std::string
    cout << "String estilo C: " << cNome << endl;
    cout << "std::string: " << cppNome << endl;
    return 0;
}

Principais Funções de String Estilo C

Estas funções são definidas no cabeçalho cstring. Elas operam em strings estilo C (arrays de char terminados em null).

strcpy()

Copia a string de origem para o buffer de destino. O destino deve ser grande o suficiente para conter a origem.

strcpy(dest, src); // dest deve ter espaço suficiente

strcat()

Anexa a string de origem ao final da string de destino. Novamente, o buffer de destino deve ser grande o suficiente para acomodar o resultado.

strcat(dest, src); // dest deve ter espaço suficiente

strlen()

Retorna o número de caracteres na string, excluindo o byte null terminador.

size_t len = strlen(str);

strcmp()

Compara duas strings lexicograficamente. Retorna 0 se iguais, valor negativo se a primeira for menor, e positivo se a primeira for maior.

int cmp = strcmp(str1, str2);

Exemplo Prático

#include <iostream>
#include <cstring>
using namespace std;
int main() {
    char nome1[10] = "Guru99";
    char nome2[10] = "John";
    char nome3[20]; // Garante espaço para resultado concatenado
    
    // Copia
    strcpy(nome3, nome1);
    cout << "strcpy(nome3, nome1): " << nome3 << endl;
    
    // Concatena
    strcat(nome1, nome2);
    cout << "strcat(nome1, nome2): " << nome1 << endl;
    
    // Comprimento
    size_t len = strlen(nome1);
    cout << "strlen(nome1): " << len << endl;
    
    // Comparação
    int cmp = strcmp(nome1, nome3);
    cout << "strcmp(nome1, nome3): " << cmp << endl;
    return 0;
}

Conclusão

Linguagem C

  1. Dominando Strings em Java: Criação, Métodos e Boas Práticas
  2. Dominando Representações String em Enums Java
  3. Variáveis e Tipos de Dados em C++: Guia Completo sobre int, double, char, string, bool
  4. Arrays em C++ Desmistificados: Declaração, Inicialização e Técnicas com Ponteiros
  5. Laço do-while em C++: Sintaxe, Exemplos Práticos e Loops Aninhados
  6. Dominando Ponteiros em C++: Conceitos, Exemplos e Aplicações Práticas
  7. Dominando o Tipo Char em C++: Declaração, ASCII e Técnicas de Conversão
  8. Sobrecarga de Operadores em C++: Guia Prático com Exemplos de Código
  9. Funções em C++ Explicadas com Exemplos Práticos de Código
  10. Strings em C Facilitadas: Declaração, Entrada, Saída e Funções da Biblioteca