Ciao e bentornato.
Siamo in una nuova sezione.
In questa sezione, andremo a parlare di stringhe di caratteri.
Probabilmente mi hai sentito dire la parola stringa un bel po 'in tutta la classe
e tu potrebbe essere stato un po 'confuso.
Una stringa è in realtà solo una parola.
È qualcosa di chiuso tra virgolette doppie.
Parleremo di come possiamo memorizzare le stringhe negli array di caratteri.
Quindi, fino a questo punto, lo siamo abbastanza familiarità con un singolo
carattere, il tipo di dati char o il tipo di dati "cura", come preferisci per pronunciarlo. Sappiamo di cosa si tratta, ma non abbiamo davvero
imparato le parole.
Per assegnare un singolo carattere a una variabile char, il carattere
è racchiuso in un coppia di virgolette singole.
Conosciamo questo.
Abbiamo
imparato tutto su questo. In questo esempio segno più è uguale a più all'interno di virgolette singole.
La cosa importante lì sono le virgolette singole.
L'hai imparato anche lì è una distinzione tra
virgolette singole e virgolette doppie.
Quindi, se metti la variabile del segno più e
gli si assegna qualcosa tra virgolette doppie e il segno più è di tipo
char, non funzionerà, perché puoi assegnare solo single caratteri al tipo di dati char.
Costante stringa o valore letterale stringa è una sequenza di caratteri o simboli tra una
coppia di virgolette doppie.
Quindi ora le virgolette sono sta per arrivare una nuova commedia.
Qualunque cosa tra questi doppi virgolette viene interpretato dal
compilatore come una stringa.
E così può davvero essere caratteri alfanumerici, possono essere
caratteri speciali ma essi di solito compongono parole che puoi pensare
come testo.
Puoi avere spazi.
Ma qualsiasi cosa in doppio virgolette è una stringa letterale.
Ogni volta che hai visualizzato un messaggio utilizzando
la funzione printf, abbiamo definito il file messaggio come costante di stringa.
Ricorda printf, il primo argomento mettiamo del testo all'interno e abbiamo alcuni
specificatori di formato.
Questa è una consonante di stringa.
Si sente anche il termine stringa letterale è la stessa cosa.
Quindi diciamo print f questa è una stringa tutto quello che c'è in
mezzo a quelle virgolette è una costante di stringa e possiamo metterlo su una o due righe.
Noti anche che puoi hanno istruzioni di stampa che
hanno sequenze di escape backslash n. Adesso questo terzo è abbastanza carino, il che, ti
spiego tra un secondo.
Ma il punto principale è che hai
per capire la differenza tra virgolette singole e doppie citazioni e cosa c'è dentro.
Con le virgolette doppie, hai delle corde.
Con le virgolette singole, hai dei personaggi.
Esistono due tipi di costanti.
Per questo terzo esempio, questo printf dove abbiamo i quattro e poi abbiamo una
barra rovesciata e poi una virgoletta singola.
Se vuoi davvero mostra una singola citazione
come output, devi evitarla.
E puoi scappare speciale caratteri utilizzando la barra rovesciata.
Quindi nel terzo esempio, è in
realtà stamperai quattro virgolette doppie che scrivi, e poi un'altra virgoletta doppia.
Quindi il compilatore interpreta un file esplicito virgolette doppie senza backslash precedente
come delimitatore di stringa.
Ogni altra volta che usi un doppio cita l'inizio e la fine di una
stringa, ma se lo volessi visualizzalo quindi devi solo mettere la
barra rovesciata davanti ad esso.
E dirà al compilatore ehi questo non sta effettivamente terminando la stringa.
È qualcosa che vogliamo da visualizzare o qualcosa
che vogliamo usare come quel carattere.
Inoltre devi usare la fuga sequenza se vuoi fare anche
la barra rovesciata perché il file la barra rovesciata è una sequenza di escape.
Quindi quando vedi la barra rovesciata barra rovesciata, stai effettivamente visualizzando quella
barra rovesciata in una funzione printf.
Se lo vedi da qualche altra parte, stai assegnando la barra rovesciata
a una variabile o comunque viene utilizzata.
Ma è seguita una barra rovesciata da un'altra barra rovesciata uscirà dalla
stringa della barra rovesciata.
E ancora, una barra rovesciata e una stringa segnala sempre l'inizio
di una sequenza di escape.
Quindi uno di per sé lo è non verrà visualizzato.
Questi sono caratteri speciali.
Quindi quando sei tra virgolette, potresti vedere le barre rovesciate per sfuggire
ai caratteri speciali e anche il backslash stesso.
Ecco come la stringa è in memoria.
Una stringa in memoria è ogni singolo carattere è
rappresentato da un po 'qui.
E quindi se hai una stringa chiamato questa è una stringa, lo vedrai dove il
file lo spazio ha qualcosa in memoria.
E dovresti anche notare a la fine di quella barra rovesciata zero che
è il terminatore nullo di cui parleremo.
Ma per la seconda stringa, ancora una volta, vedi tutto ciò che è nella memoria.
Anche la barra rovesciata n quale rappresenta una nuova linea è in memoria.
E poi per te giusto, lo farai notare che la citazione è in memoria.
Ma il backslash non lo è.
Perché il backslash sta delimitando la citazione.
Sta sfuggendo alla citazione.
Quindi è così che appare nella memoria.
Dovresti notare che la stringa in memoria ha sempre almeno un byte in più
per quella barra rovesciata zero, che è il carattere nullo.
Sembra anche il diagramma in basso non è corretto.
Noterai che il "tu" non è mostrato qui quindi dopo la citazione doppia virgoletta, non vedi
il tu lì. Dovresti essere lì da qualche parte e
in un certo senso si applica è lì da qualche parte in cui sono davvero
solo mostrandolo questi sono i valori ASCII sottostanti e così è solo mostrandolo, non mostrandolo, ma saresti
proprio prima della destra.
Ed è di questo che voglio parlare circa è questo carattere nullo.
È un personaggio speciale con il valore del codice zero.
Viene aggiunto alla fine di ogni stringa in modo che il compilatore
sappia dove finisce e anche quando lo esegui.
Questo personaggio è conosciuto come il carattere nullo, e
non ci metti semplicemente uno zero puoi mettere una barra rovesciata zero.
Ed è quello che c'era in questo diapositiva precedente alla fine.
E potrebbe essere ovunque in realtà in memoria.
E a seconda di dove si trova memoria, una funzione andrà a
cercare finché non lo vede barra rovesciata zero e potrebbe visualizzarlo o manipolarlo se
lo sei utilizzando diverse funzioni di stringa.
È molto importante quel carattere nullo.
Una stringa è sempre terminata da un carattere nullo.
Quindi la lunghezza di una stringa è sempre uno maggiore del numero
di caratteri nella stringa.
Questo diventerà molto importante quando quando usiamo array di caratteri e specifichiamo
la dimensione del file array, la dimensione dell'array dovrà essere sempre una in
più di come molti caratteri che si desidera memorizzare a causa
di questo carattere nullo.
Abbiamo anche un concetto di null di cui non abbiamo davvero
parlato in modo troppo dettagliato.
Di solito entra in gioco quando
parliamo di puntatori, ma non confondere il null carattere con la parola chiave null.
Quindi c'è una parola chiave nulla in uno dei file le intestazioni di inclusione che puoi utilizzare.
E questo è un simbolo che rappresenta un indirizzo di memoria
che non fa riferimento a nulla.
Quindi lo usi quando tu quando usi i puntatori.
Un carattere nullo è giusto un terminatore di stringa.
Parleremo di più di null quando lo faremo parla di indicatori ma assicurati di
aver compreso la distinzione tra carattere null e la parola chiave null.
È possibile aggiungere un carattere di zero barra rovesciata alla fine di
una stringa in modo esplicito e questo creerà due stringhe e Ti mostrerò come farlo quando
parliamo della definizione di array di caratteri.
Ecco un esempio con il terminatore nullo.
Abbiamo una stampa f qui, e diciamo il carattere e quindi la barra
rovesciata zero che termina una stringa.
Quindi quello che succederà è se tu compila
ed esegui questo programma, l'output che
otterrai è la prima riga sarà il carattere e poi la barra rovesciata o ci sarà una fine e
solo la prima parte di la stringa verrà visualizzata.
Non ci sarà più niente output perché print pensa che sia
la fine della stringa.
Quindi stampa solo il personaggio.
L'output finirà dopo quelle prime due parole perché la funzione
interrompe la riproduzione una volta raggiunge il carattere nullo.
Quindi la seconda barra rovesciata zero in corrispondenza di alla fine della stringa, quindi anche
se non vedi uno zero barra rovesciata qui subito prima delle virgolette
doppie finali, subito dopo il punto della stringa, ce n'è ancora uno lì,
ma non si arriva mai.
Quindi c'è un terminatore nullo implicito alla fine della stringa e printf in modo
che sappia dove finire.
E se ne aggiungi un altro, è solo andando a visualizzare fino a quel primo.
Quindi il primo terminatore nullo che è trovato nella serie di caratteri
segna sempre la fine della stringa.
Quindi comprendi questi caratteri nulli.
Questa era solo una rapida panoramica per descrivere cos'è
una stringa e capirlo le stringhe sono tra virgolette doppie.
E voglio anche descrivere il carattere nullo.
Nella prossima lezione, lo faremo capire quali sono le stringhe
di caratteri in termini di come puoi creare questi diversi questo tipo
di variabile per memorizzare le stringhe.
Grazie.