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_stringes un puntero a la cadena de destino. - La
*source_stringes un puntero a un array de tipo de carácter original de valor. - El
numberes 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_stringes un puntero a la cadena de destino. - La
*source_stringes un puntero a un array de valores originales dechar. - El
numberes 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