Ciao e Benvenuto. In questa lezione, voglio parlare della conversione di stringhe,
alcune altre funzioni di stringa.
È molto comune convertire le maiuscole / minuscole, in particolare.
Se vuoi rendere la tua stringa tutta caratteri maiuscoli,
fortunatamente, c'è una funzione due maiuscole
che converte da minuscolo a
maiuscolo e una funzione due minuscole che converte
da maiuscolo a minuscolo. Quindi minuscolo in alto, da alto in basso.
Entrambe le funzioni restituiscono il carattere convertito o lo stesso
carattere per i caratteri che sono già nel caso corretto o
non sono convertibili come i caratteri di punteggiatura se non è possibile convertirli.
Quindi è così che puoi convertire una stringa in maiuscolo.
Ricorda, questi sono effettivamente utilizzati su base
personaggio per personaggio.
Quindi, se avessi un buffer che fosse un array di
caratteri, dovresti passare attraverso ogni elemento nel buffer e
poi fare due superiori su quel carattere.
Quindi qui esaminiamo
ogni elemento nel nostro array di caratteri buffer
e lo passiamo ai due metodi superiori.
E questo restituirà un personaggio, che è un maiuscolo e lo assegneremo ai nostri buff più avanti.
Lo faremo finché non troveremo
il carattere nullo. Quindi questa è una dichiarazione di quattro che ha solo una riga.
Questo converte l'intera stringa in
un buffer rate maiuscolo passando attraverso la stringa un carattere alla volta.
Il ciclo si interrompe quando raggiunge il carattere di terminazione della stringa, la barra rovesciata zero.
Il cast del tipo char è presente perché due ritorni superiori di tipo int, che
è il valore ASCII e lo converte semplicemente.
E faresti la stessa cosa se volessi convertirlo in minuscolo, molto
semplice da usare le funzioni di conversione delle maiuscole.
Quindi puoi usare la funzione due in alto in combinazione con la funzione strstr
per scoprire se una stringa si verifica in un'altra ignorando il caso.
Quindi diamo un'occhiata a questo esempio che fa esattamente questo.
Qui abbiamo due array di caratteri, testo e sottostringa.
Il testo ha una dimensione di cento, la sottostringa è di quaranta.
Chiediamo all'utente di inserire una stringa da cercare, inferiore a cento caratteri.
Lo otteniamo, lo memorizziamo nel testo.
E poi inseriamo la stringa che vogliono trovare
usando strstr, quindi la sottostringa, quindi inseriscono un'altra sottostringa.
Quindi stampiamo la prima stringa e poi stampiamo la seconda stringa.
Quindi convertiamo entrambe le stringhe in maiuscolo.
E poi possiamo effettivamente dire che la seconda stringa ha trovato la prima stringa.
Quindi, quando chiamiamo strstr, può ignorare
le maiuscole / minuscole. Perché ricorda, uno dei limiti di strstr era che
faceva distinzione tra maiuscole e minuscole.
E così ora possiamo usare strstr
su testo e sottostringa perché sono tutti caratteri maiuscoli.
E ancora, questo è un modo per
scoprire se una sottostringa è in un'intera stringa ignorando il caso.
Per prima cosa, convertiamo tutto in maiuscolo e ora confrontiamo il maiuscolo, ed è
quello che fa questo programma.
Capita spesso di voler convertire le stringhe in numeri.
Quindi ci sono funzioni specifiche che iniziano con a.
Sono come atof, atoi, atol e atoll.
Atoi molto comune, la conversione di una stringa in un int.
Quindi atof convertirà una stringa, ed è
come ASCII, ASCIItof. Convertirà una stringa in un tipo di dati.
Quindi un atof è un ASCII in un float o double in un float.
E potresti avere determinati valori di ritorno. Se non viene trovato o non può essere eseguito.
Quindi a volte non puoi convertire le stringhe in numeri interi, specialmente se hai una stringa che contiene solo parole.
Di solito, usi questa funzione quando hai nell'esempio.
Se hai una stringa di caratteri che ha 98. 4, che può essere rappresentato come un doppio.
Quindi puoi fare un atof su di esso. Se hai una stringa di caratteri
di Jason, non puoi convertirla in un
numero intero in floater, quindi non succederà nulla. Quindi, quando hai stringhe di caratteri
che hanno numeri, puoi convertirle usando queste funzioni ASCII in.
E questo è tutto incluso nel file di intestazione lib standard.
Vedrai anche l'opposto per la
creazione di interi in stringhe, vedrai cose come itoa, che è int per ASCII.
Se avessi un numero 98 e vuoi convertirlo in una stringa, diresti itoa.
Ci sono anche alcune funzioni più recenti.
Questi sono specifici per la stringa da
raddoppiare rispetto ad atof.
Puoi usare questi
strtod o strtof o stringtold.
E ciascuno di essi si converte in doppi galleggianti lunghi o doppi galleggianti.
Ma uno di loro va bene. Quelle ASCII sono quelle tradizionali.
Penso che gli altri strtod e strtof siano stati aggiunti negli standard successivi di c.
Quindi ecco un esempio di come eseguire alcune conversioni.
È molto, molto semplice. Qui abbiamo un array di caratteri
str, 3. 5 spazio 2. 5 spazio 1. 26.
Abbiamo un paio di suggerimenti. E stiamo andando
avanti finché non saltiamo fuori è se non possiamo convertirlo.
Quindi diciamo strtod. Passiamo il nostro indirizzo
del nostro ptr, il nostro puntatore e passiamo la nostra
stringa p che è la nostra stringa,
3. 5 2. 5.
Ora potresti dire perché stai passando in p str invece che solo in str
e non sei obbligato a farlo. Ma qui vogliamo verificare effettivamente se non
c'è stata alcuna conversione.
Quindi, poiché non stiamo verificando alcuna conversione, dobbiamo esaminare entrambi i puntatori.
Non puoi confrontare il ptr con lo str perché str è un array.
Quindi useremo piece pstr per rappresentare il nostro array di caratteri in modo da poterlo confrontare.
E se confrontiamo
questi due, significa che pstr non ha memorizzato alcuna
conversione, e così abbiamo finito. Non siamo stati in grado di convertire effettivamente quel valore.
Altrimenti, se fossimo in grado di convertire il valore, lo
stamperemo e procederemo alla conversione successiva. Pstar sarà uguale a pointer.
Quindi puoi eseguirlo e puoi vedere che finirà
per convertire tutto nell'array di stringhe in valori specifici
doppi, doppi valori.
Di solito uso atoi, atof, ma uno
di questi funziona.
Queste sono le funzioni di conversione. Grazie.