Funciones de string de uso común en C/C++ con ejemplos

Strings en C : las strings se definen como una array de caracteres. La diferencia entre una array de caracteres y una string es que la string termina con un carácter especial ‘\0’. 
Algunas de las funciones de string más utilizadas son:

  • strcat : la función strcat() agregará una copia de la string de origen al final de la string de destino. La función strcat() toma dos argumentos: 
    1) dest 
    2) src 
    Agregará una copia de la string de origen en la string de destino. El carácter de terminación al final de dest se reemplaza por el primer carácter de src.  
    Valor devuelto: la función strcat() devuelve dest, el puntero a la string de destino. 

CPP

// CPP program to demonstrate
// strcat
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    char dest[50] = "This is an";
    char src[50] = " example";
 
    strcat(dest, src);
    cout << dest;
    return 0;
}
Producción: 

This is an example

 

  • strrchr : en C/C++, strrchr() es una función predefinida que se utiliza para el manejo de strings. cstring es el archivo de encabezado requerido para las funciones de string.
    Esta función Devuelve un puntero a la última aparición de un carácter en una string. 
    El carácter cuya última aparición queremos encontrar se pasa como segundo argumento de la función y la string en la que tenemos que encontrar el carácter se pasa como primer argumento de la función. 
    Sintaxis 
char *strrchr(const char *str, int c) 
  • Aquí, str es la string y c es el carácter a localizar. Se pasa como su promoción int, pero se vuelve a convertir internamente en char.
    Ejemplo: 

C++

// C++ code to demonstrate the working of
// strrchr()
#include <cstring>
#include <iostream>
using namespace std;
 
// Driver function
int main()
{
 
    // initializing variables
    char st[] = "GeeksforGeeks";
    char ch = 'e';
    char* val;
 
    // Use of strrchr()
    // returns "ks"
    val = strrchr(st, ch);
 
    cout <<"String after last " << ch << " is :  " << val << endl;
 
    char ch2 = 'm';
 
    // Use of strrchr()
    // returns null
    // test for null
    val = strrchr(st, ch2);
 
    cout <<"String after last " << ch2 << " is :  " << val << endl;
 
    return (0);
}
 
// This code is contributed by shivanisinghss2110

C

// C code to demonstrate the working of
// strrchr()
 
#include <stdio.h>
#include <string.h>
 
// Driver function
int main()
{
 
    // initializing variables
    char st[] = "GeeksforGeeks";
    char ch = 'e';
    char* val;
 
    // Use of strrchr()
    // returns "ks"
    val = strrchr(st, ch);
 
    printf("String after last %c is :  %s \n",
           ch, val);
 
    char ch2 = 'm';
 
    // Use of strrchr()
    // returns null
    // test for null
    val = strrchr(st, ch2);
 
    printf("String after last %c is :  %s ",
           ch2, val);
 
    return (0);
}
Producción: 

String after last e is :  eks 
String after last m is :  (null)

 

  • strcmp : strcmp() es una función de biblioteca incorporada y se declara enel archivo de encabezado <string.h> . Esta función toma dos strings como argumentos y compara estas dos strings lexicográficamente.
    Sintaxis:
int strcmp(const char *leftStr, const char *rightStr );
  • En el prototipo anterior, la función srtcmp toma dos strings como parámetros y devuelve un valor entero basado en la comparación de strings. 
    • strcmp() compara las dos strings lexicográficamente , lo que significa que comienza la comparación carácter por carácter a partir del primer carácter hasta que los caracteres de ambas strings sean iguales o se encuentre un carácter NULO.
    • Si el primer carácter en ambas strings es igual, esta función verificará el segundo carácter, si también es igual, verificará el tercero y así sucesivamente.
    • Este proceso continuará hasta que un carácter en cualquiera de las strings sea NULL o los caracteres sean desiguales.
  • strcpy : strcpy() es una función de biblioteca estándar en C/C++ y se usa para copiar una string a otra. En C está presente en el archivo de encabezado string.h y en C++ está presente enencabezado  cstring .
    Sintaxis: 
char* strcpy(char* dest, const char* src);
  • Parámetros: Este método acepta los siguientes parámetros: 
    • dest : Puntero a la array de destino donde se copiará el contenido. 
       
    • src: string que se copiará. 
       
  • strlen : La función strlen() calcula la longitud de una string determinada . La función strlen() se define enel archivo de encabezado string.h . No cuenta el carácter nulo ‘\0’.
    Sintaxis: 
int strlen(const char *str);
  • Parámetro: 
    • str: Representa la variable de string cuya longitud debemos encontrar.
  • strncat : en C/C++, strncat() es una función predefinida que se utiliza para el manejo de strings. string.h es el archivo de encabezado requerido para las funciones de string.
    Esta función agrega no más de n caracteres de la string a la que apunta src al final de la string a la que apunta dest más un carácter Nulo de terminación. El carácter inicial de string(src) sobrescribe el carácter nulo presente al final de string(dest). Por lo tanto, la longitud de la string (dest) se convierte en strlen (dest) + n. Pero, si la longitud de string(src) es menor que n , solo se copia el contenido hasta el carácter nulo final y la longitud de string(dest) se convierte en strlen(src) + strlen(dest).
    El comportamiento es indefinido si 
    • las cuerdas se superponen.
    • la array dest no es lo suficientemente grande para agregar el contenido de src.
    • dest : la string donde queremos agregar.
    • src : la string de la que se agregarán los caracteres ‘n’.
    • n : representa el número máximo de caracteres que se agregarán. size_t es un tipo integral sin signo.
  • La función strncmp : std::strncmp() compara lexicográficamente no más que contar caracteres de las dos strings terminadas en nulo y devuelve un número entero basado en el resultado. 
    • Esta función toma dos strings y un número num como argumentos y compara como máximo los primeros num bytes de ambas strings.
    • num debe ser como máximo igual a la longitud de la string más larga. Si num se define mayor que la longitud de la string, la comparación se realiza hasta el carácter nulo (‘\ 0’) de cualquiera de las strings.
    • Esta función compara lexicográficamente las dos strings. Comienza la comparación desde el primer carácter de cada string. Si son iguales entre sí, continúa y compara el siguiente carácter de cada string y así sucesivamente.
    • Este proceso de comparación se detiene hasta que se alcanza un carácter nulo de terminación de cualquiera de las strings o el número de caracteres de ambas strings coincide.
  • strncpy : la función strncpy() es similar a la función strcpy(), excepto que se copian como máximo n bytes de src. Si no hay ningún carácter NULL entre los primeros n caracteres de src, la string colocada en dest no terminará en NULL. Si la longitud de src es menor que n, strncpy() escribe caracteres NULL adicionales en dest para garantizar que se escriba un total de n caracteres.
    Sintaxis: 
char *strncpy( char *dest, const char *src, size_t n )
  • Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación: 
    • src: La string que se copiará.
    • dest: Puntero a la array de destino donde se copiará el contenido.
    • n: el primer carácter n copiado de src a dest.
  • strrchr : la función strrchr() en C/C++ localiza la última aparición de un carácter en una string. Devuelve un puntero a la última aparición en la string. El carácter nulo de terminación se considera parte de la string C. Por lo tanto, también se puede ubicar para recuperar un puntero al final de una string. Se define enencabezado  cstring .
    Sintaxis: 
const char* strrchr( const char* str, int ch )
            or
char* strrchr( char* str, int ch )
  • Parámetro: La función toma dos parámetros obligatorios que se describen a continuación: 
    • str : especifica el puntero a la string terminada en nulo que se buscará.
    • ch: especifica el caracter a buscar.

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *