Ottieni una sottostringa in C

Satishkumar Bharadwaj 12 ottobre 2023
  1. Funzione memcpy() per ottenere una sottostringa in C
  2. Funzione strncpy() per ottenere una sottostringa in C
Ottieni una sottostringa in C

Questo tutorial introduce come ottenere una sottostringa dal valore del carattere in C. Ci sono diversi metodi per ottenere una sottostringa dal carattere come memcpy() e strncpy().

Funzione memcpy() per ottenere una sottostringa in C

La funzione memcpy() copia il numero di caratteri dalla sorgente all’area di memoria della destinazione. Questa funzione è disponibile nel file di intestazione <string.h>.

Questa funzione crea un problema quando gli indirizzi di origine e destinazione si sovrappongono. Questa funzione non verifica la presenza di un indirizzo nullo o se si verifica o meno l’overflow.

La funzione memcpy() restituisce un puntatore alla stringa di destinazione. Non esiste alcun valore di ritorno per visualizzare un errore.

Sintassi di memcpy()

void *memcpy(void *destination_string, const void *source_string,
             size_t number);
  • La destination_string è un puntatore alla stringa di destinazione.
  • La source_string è un puntatore a un array del tipo di carattere originale di valore.
  • Il number è il numero di caratteri.
#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;
}

Produzione:

The original string is: The test string is here
Substring is: string

Funzione strncpy() per ottenere una sottostringa in C

La funzione strncpy() è la stessa della funzione strcpy(). L’unica differenza è che la funzione strncpy() copia il numero di caratteri specificato dalla stringa sorgente alla stringa di destinazione. La funzione strncpy() è disponibile nel file di intestazione <string.h>.

Questa funzione restituisce un puntatore alla stringa di destinazione dopo aver copiato la stringa di origine.

Sintassi di strncpy()

void *strncpy(void *destination_string, const void *source_string,
              size_t number);
  • La destination_string è un puntatore alla stringa di destinazione.
  • La stringa_origine è un puntatore a un array di valori char originali.
  • Il number è il numero di caratteri.

Se la funzione strncpy() incontra un carattere null in source_string, la funzione aggiungerà caratteri null a 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;
}

Produzione:

The original string is: The test string is here
Substring is: string

Articolo correlato - C Char

Articolo correlato - C String