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 dechar
. - 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
- Obtener la longitud del array de caracteres en C
- Utilice la función getchar en C
- Comparar Char en C
- Convierte entero a carácter en C