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