Obter um Substring em C
Este tutorial introduz como obter um substring do valor do carácter em C. Existem diferentes métodos para obter um substring do carácter como memcpy()
e strncpy()
.
memcpy()
Função para obter uma subestrutura em C
A função memcpy()
copia o número de caracteres da fonte para a área de memória do destino. Esta função está disponível no ficheiro de cabeçalho <string.h>
.
Esta função cria um problema quando os endereços da fonte e do destino se sobrepõem. Esta função não verifica se existe um endereço nulo ou se o transbordo ocorre ou não.
A função memcpy()
devolve um ponteiro para a string de destino. Não há valor de retorno para exibir um erro.
Sintaxe de memcpy()
void *memcpy(void *destination_string, const void *source_string,
size_t number);
- O
destination_string
é um ponteiro para a string de destino. - O
string_source
é um ponteiro para um array de caracteres do tipo de valor original. - O
number
é o 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()
Função para obter uma string em C
A função strncpy()
é a mesma que a função strcpy()
. A única diferença é que a função strncpy()
copia o número dado de caracteres da string de origem para a string de destino. A função strncpy()
está disponível no ficheiro de cabeçalho <string.h>
.
Esta função devolve um ponteiro à string de destino depois de copiar a string-fonte.
Sintaxe da função strncpy()
void *strncpy(void *destination_string, const void *source_string,
size_t number);
- O
destination_string
é um ponteiro para a string de destino. - O
source_string
é um ponteiro para um array de valores originais dechar
. - O
number
é o número de caracteres.
Se a função strncpy()
encontrar um carácter nulo na source_string
, a função adicionará caracteres nulos à 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
Artigo relacionado - C Char
- Obter comprimento do array Char em C
- Use a função getchar em C
- Comparar Char em C
- Converter Inteiro para Char em C