Udemy

C++ Strings

Video tutorial gratuito di Tim Buchalka's Learn Programming Academy
Professional Programmers and Teachers - 2.2M students
Valutazione: 4,5 su 5Valutazione dell'insegnante
59 corsi
2.244.228 studenti
C++ Strings

Descrizione della lezione

In this video we learn about the sthe std::string class in C++

Segui il corso completo per saperne di più

Beginning C++ Programming - From Beginner to Beyond

Obtain Modern C++ Object-Oriented Programming (OOP) and STL skills. C++14 and C++17 covered. C++20 info see below.

45:50:18 di video on-demand • Ultimo aggiornamento: Aprile 2025

Learn to program with one of the most powerful programming languages that exists today, C++.
Obtain the key concepts of programming that will also apply to other programming languages
Learn Modern C++ rather than an obsolete version of C++ that most other courses teach
Learn C++ features from basic to more advanced such as inheritance and polymorphic functions
Learn C++ using a proven curriculum that covers more material than most C++ university courses
Learn C++ from an experienced university full professor who has been using and teaching C++ for more than 25 years
Includes Quizzes, Live Coding Exercises, Challenge Coding Exercises and Assignments
New Section: Learn to use Visual Studio Code with C++
New Section: Learn all about using C++ Lambda Expressions
Italiano [Auto]
In questo video, lo faremo conoscere le stringhe c++. La stringa standard è una classe in libreria di modelli standard c++ o stl. Potremmo fare un intero corso su solo la scl, e quel corso sarebbe molto lungo e complesso. Quindi in questo video, lo farò solo parlare degli elementi principali della classe stringa c++. Per usare le stringhe c++ plus, tu deve includere il file di intestazione della stringa. Le stringhe sono nello spazio dei nomi standard. Quindi, per usarli senza usando lo standard dello spazio dei nomi, devi prefiggerli con standard e l'operatore di risoluzione dell'ambito. Questo vale anche per metodi di stringa standard che funzionano con le stringhe c++. Come le stringhe in stile c, le stringhe c++ sono archiviati in modo contiguo in memoria. Tuttavia, a differenza delle stringhe in stile c di dimensioni fisse, le stringhe c++ sono dinamiche e possono crescere e rimpicciolire secondo necessità in fase di esecuzione. Le stringhe C++ funzionano con il flusso operatori di inserimento ed estrazione proprio come la maggior parte degli altri tipi in c++. La classe string c++ fornisce un ricco insieme di metodi o funzioni che ci permettono di manipolare facilmente le stringhe. È probabile che se ne hai bisogno fare qualcosa con la stringa che la funzionalità è già lì per te senza doverlo riscrivere da zero. Le stringhe C++ funzionano anche con la maggior parte di gli operatori a cui siamo abituati per assegnare, confrontare e così via. Questo è un enorme vantaggio rispetto allo stile c strings poiché le stringhe in stile c non funzionano bene con quegli operatori. Anche se le stringhe c++ sono preferito nella maggior parte dei casi a volte è necessario utilizzare stringhe in stile c. Forse ti stai interfacciando con una libreria che è stata ottimizzata per le stringhe in stile c. Bene, in questo caso d'uso, tu può ancora usare le stringhe c++ e trarne vantaggio. E quando hai bisogno puoi you convertire facilmente la stringa c++ in una stringa in stile c e viceversa. Come i vettori, le stringhe c++ sono più sicuro poiché forniscono metodi che possono rimbalzare il controllo e consentire per trovare errori nel codice in modo da poterli correggere prima del tuo programma va in produzione. Vediamo come possiamo dichiarare e inizializza le stringhe c++. In tutti gli esempi in questo video, Suppongo che il file di intestazione della stringa sia stato incluso e che stiamo usando lo spazio dei nomi standard. Qui puoi vederne sei esempi di dichiarazione e inizializzazione di stringhe c++. Ci sono anche altri modi di usare costruttore e sintassi di assegnazione. Ma sto principalmente usando il sintassi dell'inizializzatore in questo video. Nel primo esempio, noi dichiara S1 come stringa. Notare che la stringa il tipo è minuscolo. A differenza delle stringhe in stile c, c++ le stringhe sono sempre inizializzate. In questo caso, S1 è inizializzato con una stringa vuota. Niente spazzatura e memoria di cui preoccuparsi. Nel secondo esempio, io sono dichiarando e inizializzando S2 alla stringa Frank. Nota che Frank è a letterale in stile c, va bene. Verrà convertito in una stringa c++. Nel terzo esempio, S3 viene inizializzato da S2, quindi viene creata una copia di S2. S2 e S3 saranno entrambi Frank, ma Franchi differenti in differenti aree di memoria. Nel quarto esempio, sto dichiarando e inizializzando S4 da Frank. Ma sto usando solo i primi tre caratteri della stringa Frank. Quindi S4 verrà inizializzato alla corda fra. Nel quinto esempio, sto inizializzando S5 da S3 che è Frank. Ma nota i due interi che segui S3 e l'inizializzatore. Il primo intero è l'inizio indice e il secondo è la lunghezza. Quindi in questo caso, inizializziamo S5 con i due caratteri che indicizzano 0 e 1 da S3. Quindi S5 sarà inizializzato a fr. Infine, possiamo inizializzare il stringa a un numero specifico di un carattere specifico. In questo caso, tre x. Nota che questo usa il costruttore sintassi con le parentesi invece delle ricci. Ora che ne abbiamo dichiarati alcuni stringhe, vediamo come possiamo assegnare loro altri valori. Con le stringhe c++, puoi utilizzare l'operatore di assegnazione. Questo sembra molto più naturale piuttosto che dover usare la funzione di copia del flusso come faremmo noi devono nelle stringhe in stile c. In questo esempio, ho dichiarato S1 ed è vuoto. Quindi posso assegnare lo stile c il c++ letterale passa a S1. Abbastanza fresco e abbastanza facile. S1 crescerà dinamicamente secondo necessità. Nel secondo esempio, ho dichiarato S2 e l'ho inizializzato su hello. Quindi assegno S1 a S2. In questo caso, S2 sarà non contengono più ciao. Conterrà un copia di S1, c++ rocce. Vediamo come possiamo concatenare le stringhe insieme. Concatenazione di stringhe solo significa costruire una stringa da altre due stringhe. Possiamo usare l'operatore più per concatenare stringhe c++. In questo esempio, ne ho creati due stringhe la prima parte che è c++ e la seconda che è potente. Quindi ho una frase stringa vuota. Nota che ne sto assegnando due enunciare il risultato concatenato della prima parte più uno spazio più parte due più uno spazio più la lingua. Se mostrassi la frase ora, lo farebbe display c++ è un linguaggio potente. Notare che l'ultimo esempio sulla diapositiva non verrà compilato. Questo perché abbiamo due letterali in stile c. E non puoi concatenare letterali in stile c. Funziona solo per le stringhe c++. Una combinazione di stringhe c++ e le stringhe in stile c vanno bene, come abbiamo visto nelle assegnazioni precedenti. Proprio come abbiamo fatto con i vettori, possiamo usare gli stessi operatori per accedere agli elementi stringa. In questo caso, gli elementi di una stringa sono caratteri. Quindi possiamo usare il pedice operatore e il metodo at. Ricorda, il metodo dell'app esegue il controllo del rimbalzo. Quindi se superi i limiti, lo farai ottenere un'eccezione che è possibile correggere. Vediamo come possiamo visualizzare caratteri sullo schermo uno alla volta. In questo esempio, abbiamo a stringa S1 inizializzata su Frank. Possiamo usare l'intervallo basato per loop per visualizzare i caratteri della stringa. In questo caso, f-r-a-n-k e il verrà visualizzato il carattere null. Più o meno quello che ti aspettavi, giusto. Notare che il tipo del ciclo variabile è char in questo caso. Cosa pensi che succederà se lo cambiamo in intero. In questo caso, ho cambiato in intero. È questo che ti aspettavi. Abbiamo detto al compilatore di usare un intero ed è esattamente quello che sta facendo. Quindi, invece di visualizzare il carattere valore di ogni elemento nella stringa, sta visualizzando il valore intero che rappresenta quei personaggi. Quindi in questo caso, 70 114 97 110 107 e 0 che rappresentano f r a n k e ovviamente il carattere null. Questi sono i codici ascii per quei personaggi Non è stato possibile confrontare le stringhe c++ essere più facile o più intuitivo. Usiamo la stessa uguaglianza e operatori relazionali che abbiamo sempre utilizzato. Stiamo confrontando due oggetti stringa, quindi verranno confrontati carattere per carattere, e il loro carattere i valori verranno confrontati lessicalmente. Quindi una a maiuscola è minore di una z maiuscola e una a maiuscola è minore di una a minuscola. Questo perché la capitale le lettere vengono prima delle lettere minuscole nella tabella ascii. Non possiamo usare questi operatori su due letterali in stile c, ma possiamo usarli nei seguenti casi. Se abbiamo due stringhe c++, se avere una stringa c++ e un letterale in stile c o se ne abbiamo uno c++ stringa e una stringa in stile c. Vediamo alcuni esempi. Qui stiamo definendo cinque c++ variabili stringa, da S1 a S5. E poi facciamo un po' di confronto operazioni e vedere i risultati. Ovviamente lo faresti normalmente usa queste espressioni booleane in un'istruzione if o in un ciclo espressioni condizionali. Nel primo esempio, controlliamo per vedere se S1 è uguale a S5. Questo è vero poiché entrambi contengono la mela di stringa. S1 è uguale a S2 è falso poiché S1 è mela e S2 è banana. Che ne dici di S1 non uguale a S2. Questo è vero da Apple non è uguale alla banana. Nel caso di S1 minore di S2, anche questo è vero poiché la mela viene lessicalmente prima della banana nella tabella ascii. Anche S2 maggiore di S1 è vero poiché la banana viene lessicalmente prima della mela. Nota che la banana ha la maiuscola b mentre apple ha una a minuscola. S4 inferiore a S5 è falso poiché la mela con la minuscola non viene prima della mela con la maiuscola. E infine, A1 uguale mela è vero perché sono uguali Nota in questo caso, mela è un letterale stringa in stile c. La classe stringa c++ ha un ricco insieme di metodi molto utili, troppi metodi da trattare in dettaglio in questo video. Ti incoraggio a studiare il c++ string class poiché sarà una classe che utilizzerai spesso, ed è importante che tu sappia cosa fornisce, quindi non reinventi la ruota quando devi risolvere un problema. Il metodo della sottostringa estrae una sottostringa da una stringa c++. Non cambia la stringa. Restituisce semplicemente la sottostringa e potresti farci quello che vuoi. In questo caso, sono semplicemente visualizzandolo. Ma puoi facilmente assegnare esso a una variabile stringa. Ecco, ho inizializzato S1 a questo è una stringa. Il primo esempio prende una sottostringa di questa stringa a partire dall'indice 0 e includendo esattamente 4 caratteri. Se ci sono meno di 4 caratteri a sinistra nella stringa originale, vengono inclusi tutti i caratteri rimanenti. In questo caso, la sottostringa è la prima parola nella stringa, this. Nel secondo esempio, torniamo la sottostringa a partire dall'indice cinque e include due caratteri. Questa è la sottostringa è, IS. Infine l'ultimo esempio inizia da indice 10 e include quattro caratteri, questo restituirà il test della sottostringa. Vediamo come possiamo cercare una stringa per un altro. La classe stringa c++ ha a has metodo molto utile chiamato find. Trova opere con caratteri e stringhe. Si aspetta una stringa o un carattere e restituisce l'indice o la posizione dell'inizio di quella stringa o carattere nella stringa originale. Quindi se abbiamo una stringa S1 che è inizializzato su questo è un test e vogliamo trovare la stringa this, otterremmo indietro uno 0 poiché questo inizia dall'indice 0. Nel secondo esempio siamo cercare la stringa è. In questo caso, restituirebbe 2 poiché il primo inizia all'indice 2. Nel terzo esempio, troviamo il test delle stringhe e otteniamo un 10. Nel quarto esempio, stiamo cercando per un singolo carattere, la e minuscola, che si trova all'indice 11. Nel quinto esempio, usiamo una variante del metodo che permette anche l'indice dove si da cui iniziare la ricerca. In questo caso, voglio trova di nuovo la sottostringa is. Ma voglio iniziare dall'indice 4. Quindi questa volta trova l'è che si trova all'indice 5. Infine, cosa succede se il la stringa o il carattere che vogliamo trovare non è presente. Bene, in questo caso il metodo ritorna una posizione finale, il che significa che non sono disponibili informazioni sulla posizione. Puoi controllare per questo valore in un'istruzione if. E se è vero, sai cosa stai stavano cercando non c'era. Molto facile, molto potente. C'è anche un metodo r find che avvia la ricerca dalla fine della stringa all'inizio della stringa. Possiamo anche rimuovere i caratteri da una stringa c++ utilizzando i metodi erase e clear. Per il metodo di cancellazione, tu fornire l'indice iniziale e quanti caratteri eliminare. Il metodo clear elimina tutti i caratteri nella stringa in modo che la stringa diventi la stringa vuota. Abbiamo visto un sacco di corde metodi e puoi vedere quanto sia potente questa classe. Diamo un'occhiata a un altro utile metodo e un altro operatore utile comunemente usato. Il metodo è il metodo della lunghezza. Restituisce il numero di caratteri attualmente nell'oggetto stringa. In questo esempio, S1 è Frank. Quindi s1. la lunghezza restituirà un 5. Questo è così facile e qualcosa è impossibile da fare con le stringhe di celle c poiché non lo fanno contenere informazioni sulle dimensioni. L'operatore che volevo coprire è l'operatore di assegnazione della concatenazione composta. In questo caso, S1 è Frank. E posso dire che S1 più è uguale a James. E James sarà concatenato a Frank e l'intera stringa del risultato verrà assegnata nuovamente a S1. Questo è davvero utile e funziona molto più o meno allo stesso modo in cui lavoravano gli operatori di assegnazione composti interi e doppi e così via. Ci sono anche molti altri metodi nella classe di stringhe c++ che puoi scoprire mentre studi c++. Ok, c'è un'altra cosa che vorrei di cui parlare prima di concludere questo video, inserisci con le stringhe c++. Le stringhe C++ funzionano alla grande con flussi di input e output. Come hai visto, inserendo una stringa c++ variabili in un flusso di output come cout è abbastanza semplice e funziona semplicemente come abbiamo sempre fatto. Estrarre una stringa c++ da anche un flusso di input come cin funziona nello stesso modo che ci aspettiamo. Tuttavia, c'è un problema che è vale anche per le stringhe in stile c. Supponiamo di aver definito S1 come una stringa c++ ed estraiamo una stringa da cin come al solito. Ora supponiamo che io digiti in ciao spazio lì. Quando visualizzo S1, I vedrà solo ciao. Il là non è stato estratto. Questo perché il l'operatore di estrazione si interrompe quando vede spazi bianchi. In molti casi, vogliamo leggere un'intera riga di testo fino a quando l'utente preme invio. Ad esempio, voglio il stringa per essere ciao lì. Supponiamo che io te lo chieda Inserisci il tuo nome e cognome. Voglio essere in grado di leggere William Smith, non solo William. In questo caso, possiamo usare la funzione getline. La funzione getline ha un paio di varianti. La prima variante ne prevede due elementi tra parentesi. Il primo elemento è il flusso di input. In questo caso, stiamo usando cin che per impostazione predefinita è la tastiera. Il secondo elemento è il nome di la stringa c++ in cui si desidera memorizzare il testo immesso dall'utente. Questo è tutto. Molto facile. Nell'esempio, io sono dicendo getline cin S1. Ora tutto l'utente tipi è memorizzato in S1. Getline smette di leggere quando vede la nuova linea. Non include la nuova linea nella stringa lo scarta semplicemente. L'altra variante di getline ha un altro elemento tra parentesi. I primi due sono uguali a prima, il flusso di input e il nome della variabile stringa c++. Il terzo è chiamato delimitatore. Questo è il personaggio che vuoi getline per interrompere la lettura dell'input a. Quindi finché l'utente non entra questo carattere, tutto verrà memorizzato nella variabile stringa. Una volta visualizzato il delimitatore, non è incluso nella variabile stringa e viene scartato. Nell'ultimo esempio, sto usando una x minuscola come delimitatore. Quindi se scrivo questo è x, allora la stringa memorizzata in S1 sarà this is e la x viene scartata. Bene, abbiamo trattato molto materiale in questo video, e c'è molto altro da imparare nella lezione sugli archi. Ma questo ti dà una buona punto di partenza in modo da poter utilizzare efficacemente la classe stringa c++. Inoltre ora sei stato presentato alla programmazione orientata agli oggetti con vettori e stringhe. Molto presto, svilupperemo il nostro proprie classi che è piuttosto interessante. Questo completa questo video. Per favore, gioca con la classe degli archi. Creare esempi, assegnare, eliminare, visualizzare e provare alcuni dei metodi in questo video. Non ci vorrà molto prima sei davvero a tuo agio a lavorare con le stringhe c++.