Bună ziua și bine ați venit înapoi o altă prelegere interesantă și această prelegere vom vorbi
mai multe despre șiruri de caractere și șir de funcții în principal abilitatea de a căuta tokenize și analiza șiruri de caractere.
Deci, să discutăm mai multe despre discutarea mai multor funcții de șir în căutarea unui șir. Toate aceste funcții
vor fi în șir.
Există câteva funcții de căutare în șir, care sunt utilizate în mod special în cazul în care puteți găsi
un caracter specific sau un substring numele acestor funcții sunt Str.
CHRY și se agită.
Găsirea unui singur caracter sau a unui substring în interiorul unui șir va oferi câteva exemple care pot, de
asemenea.
Există, de asemenea, unele capabilități pentru tokenizat un șir puteți spune ce este tokenizat un șir.
Mai întâi trebuie să definiți ce este un simbol.
Un token este o secvență de caractere într-un șir care este limitat de delimitator sau delimitatori.
BASIC este ceva care este în șirul pe care îl observați cu semnificație specială.
Deci un semn ar fi dacă ai avea un șir incomplet.
Acesta este Jason și a fost separat de spații. Unul ar putea fi altul, altul ar
putea fi Jason.
Este un mod de a lua un întreg șir și de a-l rupe în anumite limite bazate pe un delimiter și doriți să vă
asigurați că delimitatorul dvs. nu este ceva care este valabil în șirul real, astfel încât
să utilizați și delimitatori atunci când citiți din fișiere.
Același tip de concept în cazul în care vă încalci un sens în cuvinte.
Se numește tokenized.
Vom folosi această funcție numită interogare mișcată.
De asemenea, vreau să vorbesc despre niște șiruri de analiză.
Există o tona din aceste numeroase diferite pentru a verifica dacă caracterele sunt sau
nu sunt caractere minuscule sau caractere majuscule alfanumerice sau cifre.
Acestea se fac în principal pe caractere, dar pe caractere în interiorul șirurilor.
Și le puteți aplica și la șiruri întregi.
Acum intrăm în mai multe detalii despre șiruri de caractere.
Și pentru a înțelege unele dintre aceste funcții, trebuie să vorbim puțin despre indicii.
Pointerii sunt un concept uriaș în a vedea că vom avea o întreagă secțiune dedicată partenerilor,
probabil următoarea una după aceea și este o mulțime de discuții este probabil tema cea mai
confuză a limbii.
Nu vreau să trec peste asta în detaliu chiar acum, pentru că nu este relevant.
Vreau doar să vă atingeți, să vă dau o scurtă privire despre ceea ce este un indicator pentru a
înțelege unele dintre aceste funcții pe care le vom folosi.
Acesta este scopul acestui lucru, deci dacă nu înțelegeți pe deplin indicii în acest moment după ce
aceste două diapozitive nu vă faceți griji.
Deci, conceptul de pointer.
Din nou, vom discuta în detaliu mai târziu.
Dar pentru a înțelege câteva din aceste funcții de șir, vreau să vă dau o privire rapidă.
C oferă un tip util remarcabil de variabilă, numit pointer.
Am vorbit despre asta.
Are de-a face cu alocarea memoriei și a memoriei.
Unele limbi, dacă programați înainte și nu sunteți complet nou în limbile de programare, vor gestiona în mod automat memoria
pentru a vă aloca memorie pentru al șterge.
Limbajul ca Java face acest lucru.
Se numește colector de gunoi.
O limbă ca C nu face acest lucru ori de câte ori creați memorie pentru folosirea indicatoarelor pe care trebuie
să le ștergeți.
Dar ce este un pointer este foarte util și care este o variabilă care stochează o
adresă sau o memorie în memorie.
Este de obicei hexazecimal. Deci este valoarea.
Valoarea din adresă se află într-o altă locație din memorie, indicatorul îndreptându-se spre o adresă care conține o
valoare și am folosit de fapt adrese în trecut cu membrul funcției de scanare pe care am
folosit-o și simbolul pe care l-am folosit. operatorul Skanda funcția ca al doilea parametru ar trebui să ia
într-o variabilă pe care doriți să stocați datele.
Această variabilă trebuie să fie un indicator și astfel afecțiunea slabă așteaptă un indicator.
Dacă creați un număr întreg de la sine, nu este un indicator.
Dar dacă obțineți adresa, acesta devine acum un indicator.
Deci, ați folosit ampersand pentru a obține adresa unui tip de date primitiv.
Deci, sunteți puțin familiarizat cu membrul conceptului de adresă de acum cu indicii.
Creați un număr în număr și acesta nu este un pointer și este egal cu 25.
Dar dacă obțineți ampersand-ul care este adresa ei, atunci îl puteți atribui unui pointer.
Un pointer are o sintaxă specială și vedeți dacă asteriscul reprezintă un pointer.
Așa că am declarat un număr variabil cu valoarea 25 și apoi am
declarat un pointer folosind asteriscul numit număr care conține adresa numărului.
Și din nou, asteriscul este folosit pentru a declara pointerul.
Așa credeți că este un tip de date pentru pointer pentru a obține valoarea numărului P, deoarece numărul este ceea
ce este un indicator care indică o adresă din memorie.
Dacă obțineți dacă încercați doar să vă uitați la valoarea numărului, acesta vă va da adresa
dacă doriți să obțineți valoarea la care se îndreaptă adresa.
Trebuie să o dereferezi astfel că există o sintaxă specială pe care C o folosește Se
numește asteriscul în numele variabilei.
Astfel, puteți accesa locația de memorie care conține valoarea.
Deci, dacă doriți să atribuiți datele acelei locații de memorie, trebuie să spuneți numărul de început.
Faptul este că accesează datele stocate la adresa indicată de pointer, devine astfel foarte confuză atunci când vorbim despre pointeri
deoarece nu sunteți obișnuit cu acest concept.
Crezi că o variabilă are o valoare.
Asta e.
O variabilă poate avea o adresă și adresa poate avea apoi o valoare care încearcă să ilustreze ceea ce tocmai
am menționat.
Am găsit asta într-o carte pe care am citit-o.
Este un diapozitiv care vă arată conceptul de pointer în memorie și cum funcționează lucrurile cu adresele.
Asa ca reiteram ceea ce am mentionat, dar valoarea numarului ampersand este numarul pe care
se afla numarul.
Deci, dacă aveți două variabile număr și P numărul numărul este un număr pointer ca un int, de asemenea, pe calea trebuie
să specificați tipul de pointer, chiar dacă pointerul este o adresă.
Totuși, specificați tipul cu adresa la care se îndreaptă adresa.
Deci int numărul de stea va fi egal cu adresa numărului.
Numărul este în memorie și indică sute de 1000 de exemplu și are o valoare 25 Numărul P are o adresă
de 1 și 5 pentru acel număr real, dar valoarea acelei adrese este 1000 de adrese pentru a obține valoarea
numărul pe care ar trebui să-l dereferenți pe 1000.
Ceea ce vă va oferi 25 În regulă și motivul pentru care menționez tot acest lucru despre indicii
deoarece multe funcții de șir vor reveni la indicatori.
Nu va avea mare importanță atât de mult.
Este importantă numai atunci când doriți să înțelegeți cum obțineți un anumit caracter în interiorul
unei matrice.
Dar am vrut să menționez pe scurt că este în regulă dacă conceptul nu se va scufunda în acest moment,
pentru că îl vom acoperi într-o tonă de detaliu în secțiunea ulterioară.
Dar înțelegeți că funcțiile de șir acum pe care le vom folosi vor reveni la indicii.
Deci, atunci vei putea să folosiți acea întoarcere pentru a face ceva util în trecut când vom folosi copiile din
Sturr, comparativ cu faptul că am trecut prin pointeri, dar niciodată nu am întors indicii.
Nu a trebuit niciodată să folosim acest indicator.
Acum, că trebuie să folosim indicatorul, vreau doar să dau o mică descriere a ceea ce înseamnă asta.
Indicatorii vor îndrepta spre o adresă și apoi veți putea utiliza acea adresă pentru a face parsarea și orice ar trebui
să faceți.
Deci, sperăm că asta nu te-a copleșit.
Din nou, nu vă faceți griji dacă nu înțelegeți pe deplin că vom trece prin câteva exemple de analiză a jetoanelor
izing și căutarea de șiruri de caractere pentru a căuta un șir pe care îl potrivim și veți folosi
sirkar-ul de amestecare a amestecăturilor se amestecă căutările de mașină unstring pentru un singur caracter.
Primul argument al funcției este șirul de căutat care va fi adresa unei matrice de
caractere.
Al doilea argument este că caracterul pe care îl căutați va oferi un exemplu și astfel funcția va căuta
stringul începând de la început și va returna un pointer la prima poziție din șirul
în care se găsește caracterul.
Acesta este motivul pentru care partenerul este important acum deoarece nu întoarcem valoarea obosită
returnând un pointer unui caracter din interiorul unui șir și adresa reprezintă indicele unei matrice în mod esențial.
Deci, adresa acestei poziții în memorie este de tip star character și este descrisă ca un pointer la o mașină
care este într-adevăr doar un singur element la un singur caracter din memorie pentru a stoca valoarea returnată, trebuie să creați o
variabilă care să poată stoca adresa de un personaj, astfel încât trebuie
să creați un pointer dacă personajul este acum găsit.
Funcția returnează o valoare specială care este nulă.
Nu înseamnă că indicatorul nu indică nimic din ceea ce folosim acum când vorbim despre indicatori și NULL spune că
nu a găsit nimic, astfel încât nu indică nimic atunci când indică ceva ce
indică adresa unde ai găsit acel personaj.
Și apoi puteți începe parsarea de acolo.
Deoarece amintiți-vă din prelegerile anterioare atunci când creați o matrice de caractere în memorie,
trebuie să aveți fiecare caracter reprezentat ca octet.
Și dacă parsezi un șir și vrei să vezi unde începe un anumit personaj
special în șirul respectiv, returnezi acel octet și apoi poți începe să privești de acolo.
Deci sirkar cum folosiți este asta.
Spui că creăm un șir de caractere șir și îl inițializăm aici cu un Fox rapid rotund.
Apoi, creăm un singur caracter și inițiazăm acest lucru cu q, apoi creăm un punct pentru că trebuie să creăm un
punct pentru că asta este returnat de la a treia mașină.
Asta ne permite să vedem unde în acest șir am găsit un personaj.
Vom iniializa indicatorul nostru catre Nol, pentru ca acum nu va indica nimic, atunci
vom numi masina Sturr.
Vom trece în șirul nostru care este vulpea brună și vom trece în caracterul nostru unic
care este.
Q Ce se va întâmpla este că va folosi că va privi în interiorul vrăjitoarea brunetă rapidă și
prima dată când găsește un semn.
Va reveni la adresa culelei.
Deci, Piguet char se va îndrepta cu adevărat spre ceea ce văd.
Va fi indicatorul celui de-al patrulea indice al STR pentru că el este Sub-Zero care face ca cineva să se ridice
până la trei spații de patru.
Deci, el a ajuns Chaar va indica spre Q în vulpea brună și astfel puteți vedea exact unde începe
acel personaj în acea stare de agitare.
Deci, primul argument de a agita o mașină este adresa primei locații care trebuie căutată.
Acesta este șirul de căutare.
Al doilea argument este caracterul care este căutat caracterul pe care doriți să îl căutați pentru caracterul unic se
așteaptă ca o secundă să fie de tipul este așa de tehnic al treilea.
În al doilea rând, veți lua intrare C-compilator converti în mod automat la atunci când va obține valoarea ascii în esență.
Deci, ați putea defini de fapt caracterul Q unic în loc de o singură mașină pe care ați putea defini-o ca int.
Asta e doar o tehnică pe care am vrut să o știi.
Dar caracterul Piguet va îndrepta spre vulpea brună de valoare, deoarece va începe de la Q Și apoi
va merge la terminatorul nul, dacă încercați să-l imprimați.
Deci, de fapt, va fi o vulpe brun rapid atunci când executați acest exemplu.
Acesta este modul în care puteți căuta un singur caracter dintr-un șir întreg și o mașină, apoi utilizați indicatorul
și apoi afișați indicatorul.
Și cum afișați acel indicator în același mod în care afișați alte caractere pe care
le imprimați APH% SUA.
Deci, acesta este un mecanism frumos de a căuta caractere într-un șir întreg dacă doriți să căutați un șir în
interiorul unui șir care va fi un substring pe care îl mișcați amestecat.
Aceasta este probabil cea mai utilă dintre toate funcțiile de căutare este căutarea este un
șir pentru apariția unui substring și returnează un pointer la poziția din prima linie unde se găsește subcadrul.
Foarte similar cu mașina noastră, dar caută un șir întreg dacă nu a găsit returnări de potrivire.
Nu primul argument este șirul care urmează să fie căutat la fel ca str car.
În al doilea rând, este substringul căutat pentru un alt șir.
Deci, iată un exemplu.
Se pare foarte asemănător celuilalt, cu excepția căutării unui singur caracter, căutăm un
cuvânt cu un șir.
Deci avem un cuvânt care este egal cu câinele și avem impozit pe care fiecare câine îl are în fiecare zi.
Noi creăm din nou indicatorul nostru pentru că trebuie să fie.
Aceasta este ceea ce funcția revine atunci când numim Stern sau dacă trecem în text șirul
pe care vrem să îl privim și apoi al doilea argument este cuvântul pe care vrem să îl privim în interiorul stăpânirii.
Chiar așa că va căuta textul prima apariție a șirului stocat în Word, câinele
de coarde apare la cel de-al șaptelea caracter din text.
Dreapta.
Dacă te uiți la textul subsecte text va fi egal cu câine.
Și de aici începe.
Partenerul va indica adresa textului plus șase câini și va începe acolo și apoi va
merge la terminatorul nul.
Atât de profund va fi câinele are ziua lui și, de asemenea, fi atent, deoarece căutarea este sensibil la minuscule.
Dacă ați furnizat de fapt un capital D D, nu veți găsi nimic.
Va căuta doar cazul corect.
Dar acesta este folosit pentru a găsi substring-uri în șiruri de caractere.
Foarte util pentru că de multe ori într-un program veți spune că există acest șir în interiorul șirului, deoarece
faceți ca și cum ar fi aproape un grep.
Dacă ați folosit grep pe Linux.
In regula.
Sper că acest lucru are sens.
Tokenizat un șir un token este o secvență de caractere unul dintre ei șir care este legat de
un delimitator știm că un donator poate fi orice, dar ar trebui să fie ceva unic pentru acea șir nu au un
delimiter ca a.
Pentru că acum va găsi în acel șir ceva valabil într-un cuvânt o face ceva unic ca un
spațiu sau o virgulă.
Acest lucru este folosit din nou ca o limită pentru cuvintele obișnuite într-un singur șir, astfel încît se rupe o propoziție în cuvinte.
Se numește tokenize cuvântul tolk funcția este folosit pentru tokenizat un șir ea necesită două argumente șirul de a fi
tokenized care este întregul șir care are spațiile și are delimitatori și apoi șirul care
conține toate limita pozitivă de caracter.
Puteți specifica ce doriți să setați ca limită.
Deci, iată un exemplu.
Crearea unei matrice de caractere 80 spune salut cum sunt curtea ta curte.
Numele meu este Jason.
Apoi vom crea un șir constant care reprezintă delimitatorul care este minus cratimă.
Pare puțin diferit, dar este totuși minus cratimă.
Sunt ambele liniuțe și apoi creăm indicatorul nostru care este tokin.
Pentru că tolk ne va reveni pentru fiecare jeton.
Deci, dacă numim simbolul de amestecare, vom trece șirul de caractere și vom trece printr-un simbol R delimitator va fi egal
cu primul lucru care definește.
Deci, pentru prima oară când îl chemi pe strt, va fi egal cu salutul.
Spațiu și apoi găsește meciul cu linia.
Și dacă apelați pentru a doua oară când va spune că numele meu este numit a treia
oară, va pronunța Jasen pentru că trece prin liniuțe.
De aceea avem o bucla pe care o spunem in timp ce tokenul nu este egal cu nici un tipar.
Și apoi numim un simbol.
Primim tokenul următor apelul meu necontrolat și noi spunem nu ca primul nostru parametru și este al
doilea parametru al nostru.
Și apoi vom afișa.
Deci, haideți să ne uităm la asta și să codificăm blocurile.
Din moment ce o voi face mai ușor de înțeles.
Deci, să construim acest lucru, am trecut prin acest exemplu.
Vreau să vă arăt care este rezultatul, astfel încât este clar ce se întâmplă aici.
Ori de câte ori copiez și lipesc de la PowerPoint, personajele se
încurcă, așa că trebuie să rezolv și așa vei vedea că se spune că se imprimă primul simbol care este salut cum ești tu.
Primul lucru pe care îl face este că găsește primul jeton tipărit.
Salut ce mai faci.
Numele meu este și apoi Jason să formateze această ieșire un pic mai bine pentru
că am liniuța pe care vreau să o asigur că sunt cele potrivite.
A apărut o altă problemă din copierea și lipirea.
Acum avem.
Salut ce mai faci.
Găsește prima bordură tipărită.
Numele meu este.
Găsiți următorul token, apoi cel de-al treilea este Jason.
Ce trebuie să numiți tokenul de trei ori pentru a obține fiecare jeton.
Primul va face tokenize pe agitator vezi alta pe care o poti trece si nu pentru ca
nu vrei sa te uiti din nou, doar vrei sa obtii urmatorul simbol si deci treci
si anuleaza al doilea avertisment pe care tocmai il treci si ca va căuta, vă va da următoarea dovadă a pupa pupa a
vorbit deja, așa că puteți să vă separați strt.
Ajută foarte mult la parsare.
Puteți parsa ceva și obține anumite anumite limite de cuvinte din ultimele funcții pe care vreau să le vorbesc
sunt acestea anulează analiza funcțiilor șir.
Este lege.
Există o grămadă de ele, așa că am oferit doar o masă mică aici.
Este mai mică este operă face exact ceea ce credeți că va face.
Se testează dacă un caracter are litere mici sau majuscule.
Așadar, testați anumite caractere, dar sunt utilizate în interiorul șirurilor și astfel argumentul pentru
fiecare dintre aceste funcții este caracterul pe care doriți să îl căutați și apoi toate aceste
funcții returnează o valoare nenulă de tip și dacă caracterele din set care este testat.
Corect, așa că vom trece și caracterele dinăuntru vor căuta în interiorul cuvintelor.
Dacă avem o literă mare în interiorul unui cuvânt, ne va spune și o putem folosi și pentru
analizarea elementelor individuale într-un personaj.
Deci, valorile returnate se vor converti la True sau false.
Deci, le puteți folosi și ca booleani, care este frumos.
Deci, Loro poate reveni la adevărat dacă un personaj warder are o literă mică. Ei bine, iată un exemplu frumos
pe care am vrut să îl conduc prin care va număra numărul de litere dintr-un șir întreg.
Deci, haideți să executați acest lucru, deoarece acest lucru va fi clar, dar cu așa că vă permite să rulați acest lucru pentru că
el va fi clar despre motivul pentru care ar trebui să observați este crearea unui tampon.
Tamponul nostru de intrare.
Și apoi vom crea trei numere întregi de numărare.
Spunem cititorului ca utilizatorul să introducă un șir de mai puține caractere.
Apoi am citit-o, apoi vom examina șirul pentru a vedea dacă conține anumite caractere.
Și vom începe să iterăm prin acel șir examinând fiecare index din matrice.
Deci, iată exemplul nostru din nou: boffer este matricea noastră de caractere care va stoca intrări.
Vom folosi Scan F pentru a popula că trebuie să tastăm șirul nostru atunci când acele spații au un
singur șir.
Vom trece prin el trece prin fiecare element din tampon și apoi
apela alfa este cifră sau este Punx funcții pentru a vedea dacă acele caractere sunt acolo și apoi va Inkerman
și bazat pe faptul că, dacă sau nu întoarce adevărat sau false și că va afișa
câte cifre de litere și caractere de punctuație sunt în interiorul acelui șir.
Să conducem asta.
Cine va introduce ceva de genul ceva cu o grămadă de litere mari, poate câteva cifre.
Hopa.
Trebuie să scap de acest lucru cu virusul, așa că acum.
Da, și atunci când mă întorc, totul va conta, așa că spune că șirul meu conținea 24 de litere cu 4 cifre într-un singur
caracter de punctuație.
Colonul.
Programul de programare frumos mic, care utilizează acele fel de funcții de caractere, este util pentru analizarea unui șir de caractere pentru
că asta faceți.
Analizați șirul, dar tocmai treceți prin personaj după caracter.
Mulțumesc.