Come ottenere una sottostringa di un carattere*

Come ottenere una sottostringa di un carattere*

Ottenere un sottostringa di un carattere* è un argomento semplice che può essere facilmente realizzato. Questo può essere utilizzato per una vasta gamma di attività di programmazione come hacking, strisciamento web e manipolazione delle stringhe. In questo articolo discuterò il concetto di base e delineerò i passaggi necessari per ottenere un sottostringa da un carattere*.

Tuttavia, prima di spostarsi verso il processo principale, comprendiamo prima il concetto di a sottostringa.

Cos'è una sottostringa

Una sottostringa è solo una stringa più piccola del testo principale. Questa "porzione" più piccola che viene ottenuta deve ancora contenere il carattere originale o i caratteri dalla stringa originale. Ad esempio, se la stringa originale era "Ciao mondo", poi il sottostringa sarebbe "Ciao" O "mondo" A seconda dell'output desiderato.

Ottieni una sottostringa di un carattere

Gli utenti C possono ottenere una sottostringa di un carbone attraverso le seguenti funzioni:

  • funzione strncpy ()
  • funzione SBSTR ()
  • funzione memcpy ()

1: funzione strncpy ()

Il primo modo per ottenere un sottostringa di un carattere* è usare il strncpy () Funzione della libreria C. Copia un numero specifico di caratteri da una stringa all'altra. Per trasferire una sottostringa da un char* a un tampone appena costruito, usa questa funzione. Ecco un esempio di come usare strncpy ():

Qui, Pos indica l'inizio indice E len è la lunghezza della sottostringa desiderata.

#includere
#includere
int main ()

int pos, len;
char str [14] = "abcdefghijklm";
Substring Char [14];
pos = 6;
len = 5;
printf ("stringa originale è: %s", str);
printf ("\ nsubstring è:");
strncpy (substring, str+(pos-1), len);
printf (substring);
restituzione 0;

In questo esempio, sottostringa è il buffer di destinazione, char str è la stringa di origine e pos è 6 che significa che la fessura delle stringhe inizierà dalla sesta posizione (F) e termina al quinto valore, che è J nel caso. Questo si tradurrà in un file sottostringa buffer dei primi 50 caratteri dal char* originale* copiato da.

Produzione

2: funzione substr ()

Il secondo modo per ottenere un sottostringa di un carattere* è usare il substr () Funzione della libreria C. Viene utilizzato per estrarre una sezione di una stringa in base all'indice iniziale e al numero di caratteri. Questa funzione può essere utilizzata per restituire un puntatore alla sottostringa o per modificare la stringa esistente. Un esempio di substr () L'uso è il seguente:

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

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

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

int main ()

char src [] = "estrarremo la sottostringa da una stringa";
int m = 6;
int n = 15;
char* dest = substr (src, m, n);
printf ("%s", dest);
restituzione 0;

In questo codice, la lunghezza e la posizione del sottostringa La fetta è determinata nel metodo definito dall'utente substr (), e la fetta viene quindi inserita in dest variabile e stampato nella funzione principale. Il codice sopra estenderà la sottostringa tra la 6a posizione (L) E 15 Dall'inizio, che è T dal "estratto" corda. M è il punto di partenza e N è il punto finale in questo caso. Produzione:

3: funzione Memcpy ()

Il terzo modo per ottenere un sottostringa di un carattere* è usare il memcpy () Funzione della libreria C. Copia diversi byte da una posizione di memoria all'altra. Per trasferire una sottostringa da un char* a un tampone appena costruito, usa questa funzione. Un esempio di memcpy () L'uso è il seguente:

#includere
#includere
int main (vuoto)

char *text = "questa è la stringa completa";
sottotesto Char [7];
memcpy (sottotesto, & text [9], 6);
sottotesto [6] = '\ 0';
printf ("stringa originale: %s \ n", testo);
printf ("substring: %s", sottotesto);
restituzione 0;

In questo codice, il testo La stringa memorizzata della variabile viene visualizzata prima, quindi il memcpy () il metodo viene utilizzato per estrarre la sottostringa, che ha il lunghezza di 6, il posizione di 9 e l'originale testo corda. IL sottostringa viene quindi stampato dopo essere stato salvato nel Sottotesto variabile.

Produzione

Conclusione

Esistono tre funzioni di base per ottenere una sottostringa di un char in linguaggio di programmazione C. Le funzioni sono strncpy (), substr () E memcpy (). Copiando una certa quantità di caratteri da una stringa all'altra, è possibile utilizzare il strncpy () funzione. Per estrarre una porzione di stringa, puoi andare con il funzione substr (). Mentre puoi usare il memcpy () La funzione, che trasferisce un numero di byte da un indirizzo di memoria all'altro e quindi può essere efficace per ottenere una stringa di un char.