Ciao e bentornato.
Voglio continuare la nostra discussione su alcune delle funzioni nella
libreria c standard.
Queste sono molte delle funzioni ne abbiamo già parlato in classe,
ma volevo ricordartelo.
Quindi ci sono molte cose importanti varie funzioni dalla
libreria standard c che abbiamo già affrontato durante il corso con
tutti i nostri esempi e tutti le cose che abbiamo imparato.
Ne abbiamo parlato molto funzioni stringa.
E alcuni di loro sono molto facili da usare e alcuni li useremo molto,
quindi dovresti avere familiarità con questi.
Per utilizzare una qualsiasi di queste funzioni, è necessario includere la stringa
del file di intestazione. h, tutto è definito in stringa. h.
Abbiamo parlato di str cat.
Str cat concatena due stringhe, due parametri necessari, due
puntatori a caratteri.
E restituirà un personaggio puntatore concatenato all'altro.
Quindi posizionando un carattere nullo alla fine della stringa finale,
la funzione restituisce s1.
Str char questo cerca un file stringa che contiene un carattere.
Questo restituirà un file anche la star del personaggio.
È un buon modo per cercare.
Ne abbiamo parlato abbastanza un po 'con lo spago gatto.
Str compare sta andando per confrontare due stringhe.
Questo è il modo standard in cui lo fai.
Ci vogliono due puntatori e restituisce un numero intero.
Abbiamo avuto alcuni esempi di questo dove fondamentalmente se restituisci zero
le due stringhe sono uguali.
Se restituiamo maggiore o minore quindi,
se giri maggiore di zero, significa che normalmente s1 è maggiore in ordine alfabetico.
Quindi se passi in una stringa that conteneva a e quindi la
seconda stringa è b, restituirà maggiore di zero perché o diventerebbe minore di zero perché a
è minore di b.
Se sei passato in b come primo parametro ec è il secondo
parametro una sorta di stringa iniziando con b o c,
restituirà maggiore di zero.
Quindi devi capire quei valori restituiti.
Questo è ciò che è importante confrontare.
Copia Str.
Ecco come puoi assegnare una stringa in un'altra stringa.
Ricorda, stringhe, puntatori e array di caratteri, non
è possibile assegnare direttamente la stringa utilizzando l'operatore di assegnazione.
Per numeri interi e float, puoi usa semplicemente gli operatori di uguale.
Non puoi farlo con le stringhe.
Quindi devi usare str copy quando tu si desidera assegnare una stringa a un puntatore, un puntatore a un
carattere o una matrice di caratteri.
Puoi inizializzare un carattere stringa letterale matrice costante tra
virgolette doppie.
Ma dopo quello, dopo il inizializzazione
se vuoi cambiarla, dovrai usare str copy.
Lunghezza str.
Un'altra importante funzione per ottieni la lunghezza di una stringa.
Questo restituisce una dimensione t che è la numero intero che rappresenta la lunghezza.
Tutte queste funzioni di stringa accettare puntatori o array di
caratteri come parametri.
Quindi dobbiamo capire come funziona anche questo.
Altra funzione stringa strncat.
Ricorda tutte le funzioni che invece aggiungo alla fine sei un pò
più sicuro perchè tu non hanno buffer overflow.
Quindi in strncat il terzo parametro viene aggiunto e questo dirà copia o
concatena così tanti parametri.
Di solito, il terzo parametro è sarà la dimensione del primo
parametro perché non vuoi per copiare qualcosa di più grande di quello.
Queste funzioni dovrebbero essere utilizzato rispetto
alle altre funzioni stringa perché lo sono sicuro per overflow del buffer.
Strn confrontare.
Ancora una volta, confronterai alcuni numero di caratteri per s1 e s2.
Copia strn, qui il terzo parametro end sarebbe probabilmente la lunghezza di str
o la dimensione di s1.
Perché copierai s2 e s1, ma non vuoi copiare più byte di
quelli che s1 può contenere o memorizzare.
Str char.
Qui è dove puoi cercare la stringa per l'ultima occorrenza di
un carattere.
Quindi noti che sembra molto familiare o simile al carattere str, c'è
una r extra qui.
Quindi, invece di restituire il primo occorrenza, questo
restituirà l'ultima occorrenza, ma hai usato allo stesso modo dell'altro.
Str str.
Questo cercherà una stringa.
Quindi questa è una funzione di ricerca dove stai cercando di trovare
essenzialmente una sottostringa all'interno di una stringa.
Di nuovo, prendendo due puntatori di caratteri.
Strtok.
Questa era la funzione importante in cui puoi aiutarti con l'analisi dei dati.
Strtok utilizza il delimitatore come il secondo parametro
e cercherà quel carattere delimitatore ovunque all'interno della stringa.
Così spesso usi qualcosa di simile uno spazio o un avanzamento riga per s2.
Spezzerà la stringa un numero di gettoni diversi.
Di nuovo, usa quando vuoi per analizzare i dati di solito.
Ogni volta che devi chiamare strtok più volte finché non
ottieni null se sei ancora cercando il prossimo tok che vuoi trovare in
una data stringa.
Abbiamo avuto anche alcune importanti funzioni di carattere.
Tutte le funzioni del personaggio sono definiti in ctype. h.
Il carattere funziona che noi usato dove le funzioni is controllano se un carattere lo
è o meno un alfanumerico o se è vuoto o se si
tratta di un controllo carattere una cifra, c'erano un certo
numero di funzioni diverse lì.
Quindi ricorda quel ctype. h lo consente per verificare se
questi diversi personaggi siano realmente.
Avevamo anche alcune funzioni di conversione in ctype. h, principalmente i nostri due superiori.
Due inferiori prendono un personaggio e darà l'equivalente
minuscolo di quella c.
Ricorda che abbiamo avuto una sfida dove abbiamo convertito le lettere minuscole in maiuscole.
In quella sfida, abbiamo effettivamente aggiunto alla nostra tabella ASCII, ma avremmo
potuto chiamare due superiori sul carattere.
Avremmo potuto crearne due intorno al carattere fintanto
che abbiamo incluso ctype. he quello si sarebbe convertito da minuscolo a maiuscolo.
Abbiamo avuto un sacco di IO funzioni, input e output.
Ci siamo concentrati sulla lettura e scrivendo file, ma
leggiamo anche l'input dalla tastiera e abbiamo emesso dati sulla console o sullo schermo.
Quindi, per utilizzare l'IO più comune funzioni, questo è tutto
nello standardio. h file di intestazione.
Questo file contiene dichiarazioni per diverse funzioni IO e
definizioni di costanti, come fine del file, standard nullo nello standard output
ed errore standard.
Sono tutti valori costanti.
C'è anche una costante per il file della struttura del file.
Fclose è una funzione che noi utilizzato per chiudere i nostri flussi.
Chiude il file identificato dal puntatore del file.
E restituisce zero se lo è chiudere un successo, altrimenti eof.
Feof, questa è una funzione che non abbiamo fatto usa esplicitamente ma questo controllerà se sei alla
fine o meno del file invece di confrontarlo con una costante
puoi fare un feof.
Fflush.
Questa è una funzione che svuoterà tutti i dati del buffer interno.
A volte è necessario farlo quando vuoi ricominciare da capo, ma in pratica ti
stai solo sbarazzando di qualsiasi cosa all'interno di un buffer.
Abbiamo anche fgetc.
Questa è la lettura individuale caratteri, accetta un puntatore a file.
Abbiamo una posizione fget.
Questo è uno dei file funzioni di posizione.
Ottiene la posizione del file corrente per il file associato
al puntatore del file e lo memorizza in un tipo di posizione f, che è definito
nello standard io. anche h.
Abbiamo avuto i nostri fgets.
Questa era la lettura in stringhe.
Molto carino, legge i caratteri dal file indicato, ma il
numero di caratteri.
Fopen aprirà un file in un file modalità specifica: leggere, scrivere o
aggiungere utilizzando un puntatore a file.
Fprintf scriverà i dati e formatterà output, ed è simile alla funzione printf che
richiederà l'estensione argomenti specificati dal puntatore e quindi utilizzare i
dati formattati per scrivere.
Quindi puoi scrivere numeri interi, doppi utilizzando gli identificatori di formato e quindi le
variabili che si desidera scrivere.
Avevamo anche fputc, che lo farà scrive i caratteri in un file.
Fputs scriverà una stringa in un file.
Ci vuole un buffer e un file indica cosa vuoi scrivere e
il file su cui vuoi scrivere.
Fscanf leggerà i dati da un file.
Afferrerà l'input e userà lo stesso tipo di formato
di scanf identificatori di formato e variabili.
Ma è carino che tu lo voglia leggere i dati separati da uno spazio.
Puoi usare fscanf e puoi specificare il tipo quindi leggilo direttamente
in int, double, tipi di dati specifici.
Fseek sposterà la posizione di dove stai puntando in un file.
Quindi non devi iniziare da l'inizio o la fine di un file.
Puoi andare direttamente a al centro del file.
Una volta che hai trovato quella posizione, il tuo file la prossima lettura o scrittura
utilizzerà quella posizione per scrivere o leggere.
La posizione di Fset è simile a Fseek.
Imposta la posizione del file
corrente nel file associato al puntatore del file al valore indicato dalla posizione f, fpos.
Abbiamo anche avuto ftell.
Ftell tornerà come molti byte dall'inizio sei
basato sul puntatore del file.
Quindi è il relativo fuori sede in byte dalla posizione corrente,
non sempre dall'inizio, ma la posizione attuale.
Usiamo l'ftell in uno dei nostri file sfide per leggere un file al contrario.
Printf.
Lo usiamo probabilmente di più rispetto a qualsiasi altra funzione.
Questo stava mostrando output sullo schermo.
Utilizza identificatori di formato e un numero variabile di
argomenti separati da virgole.
Printf è molto utile per il debug e la visualizzazione dell'output, cosa che
fai spesso all'interno di un programma c.
Rimuovere.
Remove è una funzione in cui puoi eliminare un file.
Ci vuole un nome di file.
Il puntatore del file deve essere chiuso.
Non puoi tenerlo aperto.
Rinomina rinominerà un file in anche l'altro file deve essere chiuso il file
non può essere aperto.
Scanf leggerà l'input da di solito predefinito dalla tastiera.
Puoi cambiarlo per leggere l'input da altri stream, se lo desideri.
Avevamo anche funzioni di conversione che abbiamo discusso durante il corso.
La maggior parte di queste funzioni sono in standard lib. h file, file di intestazione.
Avevamo la funzione atof.
Questo sta convertendo una stringa in un file float e lo passi in una stringa.
Abbiamo funzioni atoi.
Questa conversione di un file stringa in un numero intero.
Atol sta convertendo una stringa in un file long, e passi la stringa
e restituisce o il ritorno metodo a cui stai convertendo.
Questi sono molto utili.
Li usi spesso per convertire stringhe a un tipo di numero.
Atoll lo converte in un int lungo lungo.
Ma assicurati di guardare il file file di intestazione lib standard
per ulteriori funzioni di conversione.
Avevamo le nostre funzioni di memoria, le nostre funzioni di allocazione dinamica della memoria.
Questi sono davvero importanti.
L'allocazione dinamica della memoria è importante perché è molto più efficiente.
Utilizzi solo il file memoria di cui hai bisogno.
Non crei dati statici.
Permette il tuo programma essere molto più flessibili.
Tutte queste funzioni sono incluso nella libreria standard. h.
Abbiamo parlato di calloc.
Calloc è un'ottima funzione dove puoi assegnare una certa dimensione
e questa verrà moltiplicata per n.
Quindi puoi specificare il tipo di dati pure e lo moltiplicherà.
La cosa bella di calloc, inizializza i tuoi dati.
Quindi è davvero preferito rispetto a malloc.
Abbiamo la nostra funzione gratuita che cancellerà la memoria.
Tutta questa memoria se ne va da creare sul mucchio.
Quindi saremo molto in giro più a lungo, ma sta a te
come programmatore gestire questa memoria.
Vuoi sempre liberare il tuo memoria dopo aver finito di
usarla perché la memoria è scarsa risorsa in altri programmi e vogliamo utilizzare
quella memoria.
Quindi chiama sempre gratis dopo fai un calloc o un malloc.
Malloc è più semplice versione di creare memoria.
In realtà non lo è inizializza tutti i dati.
Prende solo la dimensione come parametro.
Restituisce una stella del vuoto.
Quindi devi sempre lanciarlo proprio come con calloc a qualunque tipo
di memoria stai puntando.
Se stai puntando a int o float, devi lanciarlo.
Abbiamo anche rialloc.
Realloc è fantastico perché puoi effettivamente aggiungere alla memoria esistente.
E così in questo modo il tuo la memoria può essere dinamica.
Puoi ingrandirlo se si desidera memorizzare più dati.
Realloc accetta un puntatore nella dimensione.
Conserverà tutti i dati che il ricordo precedente stava puntando.
Allocherà nuova memoria ma lo manterrà, quindi puoi aggiungere un
po 'di memoria esistente.
Molto, molto utile.
Nel creare la memoria in modo dinamico è sarà davvero utile in tutti i tuoi programmi
soprattutto perché i puntatori sono molto, molto importanti sono
molto più efficienti.
Ma assicurati di aver capito tutto questi file di intestazione che utilizziamo
durante il corso.
Questi sono i principali che sono molto, molto importanti.
Ne parleremo di nuovi in il prossimo paio di lezioni di cui non
riuscimmo a discutere quanto mi piaceva.
Ma questi sono alcuni anche importanti.
Grazie.