Como obter uma substring de um char*

Como obter uma substring de um char*

Obtendo um Substring de um char* é um tópico direto que pode ser facilmente realizado. Isso pode ser usado para uma ampla gama de tarefas de programação, como hackers, rastreamento da web e manipulação de cordas. Neste artigo, discutirei o conceito básico e descreverei as etapas necessárias para obter um substring de um char*.

No entanto, antes de avançar em direção ao processo principal, vamos primeiro entender o conceito de um substring.

O que é uma substring

Uma substring é apenas uma corda menor do texto principal. Esta "parte" menor que está sendo obtida ainda deve conter o personagem ou caracteres originais da string original. Por exemplo, se a string original fosse "Olá Mundo", então o substring seria "olá" ou "mundo" dependendo da saída desejada.

Obtenha uma substring de um char

Os usuários de C podem obter uma substring de um char através das seguintes funções:

  • função strncpy ()
  • função sbstr ()
  • função memcpy ()

1: função strncpy ()

A primeira maneira de conseguir um Substring de um char* é usar o strncpy () C função da biblioteca. Ele copia um número específico de caracteres de uma string para outra. Para transferir uma substring de um char* para um buffer recém -construído, use esta função. Aqui está um exemplo de como usar strncpy ():

Aqui, POS indica o começo índice e Len é o comprimento da substring desejada.

#incluir
#incluir
int main ()

int pos, len;
char str [14] = "abcdefghijklm";
Substring de char [14];
pos = 6;
len = 5;
printf ("string original é: %s", str);
printf ("\ nsubstring é:");
strncpy (substring, str+(pos-1), len);
printf (substring);
retornar 0;

Neste exemplo, substring é o buffer de destino, char str é a sequência de origem e POS é 6, o que significa que o fatiamento de cordas começará na 6ª posição (f) e termina no quinto valor, que é j dentro do estojo. Isso resultará em um substring Buffer dos 50 primeiros caracteres do char original* copiado de.

Saída

2: Função substantivo ()

A segunda maneira de conseguir um Substring de um char* é usar o substr () C função da biblioteca. É usado para extrair uma seção de uma string com base no índice inicial e no número de caracteres. Esta função pode ser usada para retornar um ponteiro à substring ou para modificar a string existente. Um exemplo de substr () O uso é o seguinte:

#incluir
#incluir
char * substr (const char * src, int m, int n)

int len ​​= n-m;
char*dest = (char*) malloc (sizeof (char)*(len + 1));
para (int i = m; i
*dest = *(src+i);
dest ++;

*dest = '\ 0';
retornar Dest-Len;

int main ()

char src [] = "Extrairemos a substring de uma string";
int m = 6;
int n = 15;
char* dest = substr (src, m, n);
printf ("%s", dest);
retornar 0;

Neste código, o comprimento e a localização do Substring's A fatia é determinada no método definido pelo usuário substr (), e a fatia é então colocada no dest variável e impressa na função principal. O código acima produzirá a substring entre a 6ª posição (eu) e 15 Desde o início, que é t de "extrair" corda. m é o ponto de partida e n é o ponto final deste caso. Saída:

3: função memcpy ()

A terceira maneira de conseguir um Substring de um char* é usar o memcpy () C função da biblioteca. Ele copia vários bytes de um local de memória para outro. Para transferir uma substring de um char* para um buffer recém -construído, use esta função. Um exemplo de memcpy () O uso é o seguinte:

#incluir
#incluir
int main (vazio)

char *text = "Esta é a sequência completa";
Subtexto de char [7];
memcpy (subtexto e texto [9], 6);
subtexto [6] = '\ 0';
printf ("String original: %s \ n", texto);
printf ("Substring: %s", subtexto);
retornar 0;

Neste código, o texto A sequência armazenada da variável é exibida primeiro e depois a memcpy () o método é usado para extrair a substring, que tem o comprimento de 6, o posição de 9 e o original texto corda. O substring é então impresso após ser salvo no sub-texto variável.

Saída

Conclusão

Existem três funções básicas para obter uma substring de um char na linguagem de programação C. As funções são strncpy (), substr () e memcpy (). Ao copiar uma certa quantidade de caracteres de uma corda para outra, você pode usar o strncpy () função. Para extrair uma porção de corda, você pode ir com o função substr (). Enquanto você pode usar o memcpy () A função, que transfere vários bytes de um endereço de memória para outro e, portanto, pode ser eficaz para obter uma sequência de um char.