Cómo obtener una subcadena en C

Satishkumar Bharadwaj 12 octubre 2023
  1. memcpy() Función para obtener una subcadena en C
  2. strncpy() Función para obtener una subcadena en C
Cómo obtener una subcadena en C

Este tutorial introduce cómo obtener una subcadena a partir del valor del carácter en C. Hay diferentes métodos para obtener una subcadena a partir del carácter como memcpy() y strncpy().

memcpy() Función para obtener una subcadena en C

La función memcpy() copia el número de caracteres de la fuente al área de memoria del destino. Esta función está disponible en el archivo de cabecera <string.h>.

Esta función crea un problema cuando las direcciones de origen y destino se superponen. Esta función no comprueba si la dirección es nula o si el desbordamiento se produce o no.

La función memcpy() devuelve un puntero a la cadena de destino. No hay ningún valor de retorno para mostrar un error.

Sintaxis de memcpy()

void *memcpy(void *destination_string, const void *source_string,
             size_t number);
  • La *destination_string es un puntero a la cadena de destino.
  • La *source_string es un puntero a un array de tipo de carácter original de valor.
  • El number es el número de caracteres.
#include <stdio.h>
#include <string.h>

int main(void) {
  char *text = "The test string is here";
  char subtext[7];

  memcpy(subtext, &text[9], 6);
  subtext[6] = '\0';
  printf("The original string is: %s\n", text);
  printf("Substring is: %s", subtext);

  return 0;
}

Resultado:

The original string is: The test string is here
Substring is: string

strncpy() Función para obtener una subcadena en C

La función strncpy() es la misma que la función strcpy(). La única diferencia es que la función strncpy() copia el número dado de caracteres de la cadena de origen a la cadena de destino. La función strncpy() está disponible en el archivo de cabecera <string.h>.

Esta función devuelve un puntero a la cadena de destino después de copiar la cadena de origen.

La sintaxis de strncpy()

void *strncpy(void *destination_string, const void *source_string,
              size_t number);
  • La *destination_string es un puntero a la cadena de destino.
  • La *source_string es un puntero a un array de valores originales de char.
  • El number es el número de caracteres.

Si la función strncpy() encuentra un carácter nulo en la source_string, la función agregará caracteres nulos a la destination_string.

#include <stdio.h>
#include <string.h>

int main(void) {
  char *text = "The test string is here";
  char subtext[7];

  strncpy(subtext, &text[9], 6);
  subtext[6] = '\0';
  printf("The original string is: %s\n", text);
  printf("Substring is: %s", subtext);

  return 0;
}

Resultado:

The original string is: The test string is here
Substring is: string

Artículo relacionado - C Char

Artículo relacionado - C String