Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando funciones de cadena en C++: strcpy, strcat, strlen, strcmp – Ejemplos prácticos

¿Qué es una cadena?

Una cadena es simplemente una secuencia de caracteres. En C++ moderno solemos trabajar con objetos de la clase std::string, que gestiona automáticamente la asignación de memoria, el redimensionamiento y una gran cantidad de funciones miembro útiles. Esto elimina la necesidad de gestión manual de búferes y reduce el riesgo de desbordamientos.

Con fines educativos, C++ sigue soportando las tradicionales cadenas de estilo C terminadas en null. Ambos enfoques tienen su lugar: use std::string para la programación diaria, y reserve las cadenas de estilo C para APIs heredadas o código de bajo nivel crítico para el rendimiento.

Declaración de cadenas

Cadena de caracteres estilo C

Ejemplo:

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

O más concisamente:

 char nombre[] = "John"; // el compilador inserta el '\0' final 

std::string

Para usar std::string, incluya la cabecera y declare una variable:

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

Acceso a valores de cadena

A continuación, un programa de consola simple que imprime una cadena estilo C y un valor std::string.

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

Salida:

Dominando funciones de cadena en C++: strcpy, strcat, strlen, strcmp – Ejemplos prácticos

Funciones clave de cadenas C

Estas funciones están definidas en la cabecera cstring. Operan sobre cadenas de estilo C (arrays de char terminados en null).

strcpy()

Copia la cadena origen en el búfer destino. El destino debe ser lo suficientemente grande para contener el origen.

 strcpy(dest, origen); // dest debe tener espacio suficiente 

strcat()

Anexa la cadena origen al final de la cadena destino. De nuevo, el búfer destino debe ser lo bastante grande para acomodar el resultado.

 strcat(dest, origen); // dest debe tener espacio suficiente 

strlen()

Devuelve el número de caracteres en la cadena, excluyendo el byte nulo final.

 size_t len = strlen(cad); 

strcmp()

Compara dos cadenas lexicográficamente. Devuelve 0 si son iguales, un valor negativo si la primera es menor, y positivo si la primera es mayor.

 int cmp = strcmp(cad1, cad2); 

Ejemplo práctico

 #include <iostream>
#include <cstring>
using namespace std;
int main() {
    char nombre1[10] = "Guru99";
    char nombre2[10] = "John";
    char nombre3[20]; // Asegurar espacio para resultado concatenado
    // Copia
    strcpy(nombre3, nombre1);
    cout << "strcpy(nombre3, nombre1): " << nombre3 << endl;
    // Concatenación
    strcat(nombre1, nombre2);
    cout << "strcat(nombre1, nombre2): " << nombre1 << endl;
    // Longitud
    size_t len = strlen(nombre1);
    cout << "strlen(nombre1): " << len << endl;
    // Comparación
    int cmp = strcmp(nombre1, nombre3);
    cout << "strcmp(nombre1, nombre3): " << cmp << endl;
    return 0;
} 

Salida:

Dominando funciones de cadena en C++: strcpy, strcat, strlen, strcmp – Ejemplos prácticos

Conclusiones

Lenguaje C

  1. Variables y tipos de datos en C++: Guía experta sobre int, double, char, string, bool
  2. Arrays en C++: Declaración, inicialización y técnicas con punteros
  3. Bucle do‑while en C++: Sintaxis, ejemplos prácticos y bucles anidados
  4. Dominando punteros en C++: Conceptos, ejemplos y aplicaciones prácticas
  5. Dominando el tipo de dato char en C++: Declaración, ASCII y técnicas de conversión
  6. Sobrecarga de operadores en C++: Guía práctica con ejemplos de código
  7. Funciones en C++ Explicadas con Ejemplos de Código Prácticos
  8. Cadenas en C hechas fáciles: Declaración, entrada, salida y funciones de biblioteca
  9. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
  10. Dominando representaciones String en Enums de Java
  11. Dominando Java String.indexOf(): Localizar subcadenas y ejemplos prácticos