Concetti Chiave

  • C fornisce diverse funzioni per la manipolazione delle stringhe, definite nel file header stringh.h.
  • Le funzioni di copia come strcpy e strncpy consentono di copiare stringhe, ma richiedono attenzione per evitare buffer overflow.
  • Funzioni come strcat e strncat permettono di concatenare stringhe, aggiungendo i caratteri di una stringa a un'altra.
  • Le funzioni di confronto, come strcmp e strncmp, sono utilizzate per confrontare stringhe in modo lessicografico.
  • È fondamentale prestare attenzione all'uso delle funzioni strcpy() e strcat(), poiché non sono sicure e possono causare comportamenti imprevisti.

Indice

  1. Funzioni di supporto per stringhe
  2. Funzioni miscellanee e avvertenze

Funzioni di supporto per stringhe

C fornisce funzioni di supporto per modificare le stringhe letterali. I prototipi di funzioni sono specificati nel file header stringh.h, che contengono puntatori e lunghezze. Se l’indirizzo passato alla funzione non è una stringa, il comportamento delle funzioni è non definito, si possono verificare problemi di buffer overflow.
Funzioni di copia (ritorno s1)

char *strcpy(char *s1, const char *s2); -> Copia i caratteri di s2 in s1, incluso '\0'.

char *strncpy(char *s1, const char *s2, size t n); -> Copia massimo n caratteri di s2 in s1.

Funzioni di concatenazione (ritorno s1)

char *strcat(char *s1, const char *s2); -> Aggiunge i caratteri di s2 a s1.

char *strncat(char *s1, const char *s2, size t n); -> Aggiunge massimo n caratteri di s2 a s1.

Funzioni di confronto (ritorno =0, 0)

int strcmp(const char *s1, const char *s2); -> Confronta lessicograficamente s1 e s2.

int strncmp(const char *s1, const char *s2, size t n); -> Confronta massimo n caratteri di s1 e s2.

Funzioni di ricerca (ritorno indirizzo memoria o NULL)

char *strchr(const char *s, int c); -> Individua la prima occorrenza di c in s.

char *strrchr(const char *s, int c); -> Individua l'ultima occorrenza di c in s.

char] strstr(char*str, char*sub); -> Ricerca la sottostringa all’interno della stringa

Funzioni miscellanee e avvertenze

Funzioni miscellanee

size t strlen(const char *s); -> Ritorna la lunghezza della stringa s ( senza \0 )

char *strtok(s, ct) strtok cerca in s dei token delimitati da caratteri di ct.

Le funzioni strcpy() e strcat() non sono sicure e non dovrebbero essere utilizzate.

Domande da interrogazione

  1. Quali sono le funzioni di copia disponibili per le stringhe in C?
  2. Le funzioni di copia disponibili sono `strcpy`, che copia i caratteri di una stringa in un'altra, e `strncpy`, che copia un massimo di n caratteri. È importante notare che l'uso di queste funzioni può portare a problemi di buffer overflow se non si gestiscono correttamente gli indirizzi delle stringhe.

  3. Quali funzioni di confronto delle stringhe sono fornite in C?
  4. Le funzioni di confronto sono `strcmp`, che confronta due stringhe lessicograficamente, e `strncmp`, che confronta un massimo di n caratteri di due stringhe. Entrambe restituiscono 0 se le stringhe sono uguali.

  5. Quali avvertenze sono associate all'uso delle funzioni di supporto per le stringhe in C?
  6. È fondamentale prestare attenzione all'uso delle funzioni `strcpy` e `strcat`, poiché non sono considerate sicure e possono causare problemi di buffer overflow. Inoltre, se l'indirizzo passato non è una stringa, il comportamento delle funzioni è non definito.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community