strlen,, strnlen, strchr, strrchr, strpbrk, strspn, strcspn, strstr, strtok o strsep Subroutine
Finalità
Determina la dimensione, la posizione e l'esistenza di stringhe in memoria.
Libreria
Libreria C standard (libc.a)
Sintassi
#include <string.h>
size_t strlen (String)
const char *String;
size_t strnlen (String, maxlen)
const char *String;
size_t maxlen;
char *strchr (String, Character)
const char *String;
int Character;
char *strrchr (String, Character)
const char *String;
int Character;
char *strpbrk (String1, String2)
const char *String1, String2;
size_t strspn (String1, String2)
const char *String1, * String2;
size_t strcspn (String1, String2)
const char *String1, *String2;
char *strstr (String1, String2)
const char *String1, *String2;
char *strtok (String1, String2)
char *String1;
const char *String2;
char *strsep (String1, String2)
char **String1;
const char *String2;
char *index (String, Character)
const char *String;
int Character;
char *rindex (String, Character)
const char *String;
int Character;Descrizione
Gli strlen, strnlen, strchr, strrchr, strpbrk, Le subroutine strspn, strcspn, strstre strtok determinano tali valori come dimensione, posizione e l'esistenza di stringhe in memoria.
I parametri String1, String2e String pungono a stringhe. Una stringa è una schiera di caratteri terminati da un carattere nullo.
La sottoroutine strlen restituisce il numero di byte nella stringa puntata dal parametro String , non compresi i byte null terminati.
La funzione strnlen restituisce un intero contenente il più piccolo della lunghezza della stringa puntata da Stringo maxlen, non compresi i byte null terminati.
La sottoroutine strchr restituisce un puntatore alla prima ricorrenza del carattere specificato dal parametro Character (convertito in un carattere non firmato) nella stringa puntata dal parametro String . Viene restituito un puntatore nullo se il carattere non si verifica nella stringa. Il byte nullo che termina una stringa è considerato parte della stringa.
La sottoroutine strrchr restituisce un puntatore all'ultima ricorrenza del carattere specificato dal parametro Character (convertito in un carattere) nella stringa puntata dal parametro String . Viene restituito un puntatore nullo se il carattere non si verifica nella stringa. Il byte nullo che termina una stringa è considerato parte della stringa.
La sottoroutine strpbrk restituisce un puntatore alla prima ricorrenza nella stringa puntata dal parametro String1 di qualsiasi byte dalla stringa puntata dal parametro String2 . Viene restituito un puntatore nullo se nessun byte corrisponde.
La sottoroutine strspn restituisce la lunghezza del segmento iniziale della stringa puntata dal parametro String1 , che consiste interamente in byte dalla stringa puntata dal parametro String2 .
La sottoroutine strcspn restituisce la lunghezza del segmento iniziale della stringa puntata dal parametro String1 , che consiste interamente in byte non dalla stringa puntata dal parametro String2 .
La sottoroutine strstr trova la prima ricorrenza nella stringa puntata dal parametro String1 della sequenza di byte specificata dalla stringa puntata dal parametro String2 (escluso il carattere nullo terminante). Restituisce un puntatore alla stringa trovata nel parametro String1 , oppure un puntatore nullo se la stringa non è stata trovata. Se il parametro String2 punta ad una stringa di 0 di lunghezza, la sottoroutine strstr restituisce il valore del parametro String1 .
La subroutine strtok rompe la stringa puntata dal parametro String1 in una sequenza di token, ciascuna delle quali è delimitata da un byte dalla stringa puntata al parametro String2 . La prima chiamata nella sequenza prende il parametro String1 come primo argomento e viene seguita da chiamate che assumono un puntatore nullo come primo argomento. La stringa separatore puntata dal parametro String2 potrebbe essere diversa da chiamata a chiamata.
La prima chiamata nella sequenza ricerca il parametro String1 per il primo byte che non è contenuto nella stringa di separatore corrente puntata dal parametro String2 . Se non viene trovato alcun tipo di byte, non esistono token nella stringa puntata dal parametro String1 e viene restituito un puntatore nullo. Se viene trovato un tale byte, è l'inizio del primo token.
La sottoroutine strtok effettua poi le ricerche dal primo token per un byte contenuto nella stringa di separatore corrente. Se non viene trovato alcun tipo di byte, il token corrente si estende alla fine della stringa indicata dal parametro String1 e le successive ricerche per un token restituiscono un puntatore nullo. Se viene trovato un tale byte, la sottoroutine strtok lo sovrascrive con un byte nullo, che termina il token corrente. La sottoroutine strtok salva un puntatore al seguente byte, da cui partirà la successiva ricerca di un token. La sottoroutine restituisce un puntatore al primo byte del token.
Ogni chiamata successiva con un puntatore nullo in quanto il valore del primo argomento inizia alla ricerca dal puntatore salvato, utilizzandolo come primo token. In caso contrario, il comportamento della subroutine non cambia.
La sottoroutine strsep restituisce il token successivo dalla stringa String1 delimitata da String2. Il token viene terminato con un\0carattere e String1 viene aggiornato per puntare oltre il token. La sottoroutine strsep restituisce un puntatore al token o NULL se String2 non si trova in String1.
Le sottoroutine index, rindex e strsep sono incluse per la compatibilità con BSD e non fanno parte della Libreria ANSI C. La sottoroutine index viene implementata come chiamata alla subroutine strchr . La sottoroutine rindex viene implementata come chiamata alla subroutine strrchr .
Parametri
| Elemento | Descrizione |
|---|---|
| Carattere | Specifica un carattere per cui restituire un puntatore. |
| Stringa | Punta ad una stringa da cui vengono restituiti i dati. |
| String1 | Punta a una stringa da cui un'operazione restituisce risultati. |
| String2 | Punta ad una stringa che contiene fonte per un'operazione. |
Codici di errore
Gli strlen, strnlen, strchr, strrchr, strpbrk, Le subroutine strspn, strcspn, strstre strtok non riescono se si verifica quanto segue:
| Elemento | Descrizione |
|---|---|
| EFAULT | Un parametro di stringa è un indirizzo non valido. |