Obter um Substring em C

Satishkumar Bharadwaj 12 outubro 2023
  1. memcpy() Função para obter uma subestrutura em C
  2. strncpy() Função para obter uma string em C
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 de char.
  • 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

Artigo relacionado - C String