1 / 18

Simbolių eilutės

Simbolių eilutės. C++ kalbos abėcėlę sudaro. 26 lotynų abėcėlės didžiosios ir mažosios raidės; 10 arabiškų skaitmenų (0, 1, 2, 3, 4, ... 9); Specialieji simboliai: “ , { } | [ ] ( ) + - * / ; , ‘ < > _ ! & # ~ = % ^ $ @ . Simboli ų eilut ė char [].

jamil
Download Presentation

Simbolių eilutės

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Simbolių eilutės

  2. C++ kalbos abėcėlę sudaro • 26 lotynų abėcėlės didžiosios ir mažosios raidės; • 10 arabiškų skaitmenų (0, 1, 2, 3, 4, ... 9); • Specialieji simboliai: • “ , { } | [ ] ( ) + - * / \ ; , ‘ < > _ ! & # ~ = % ^ $ @ .

  3. Simboliųeilutėchar[] • Simbolių eilutes patogu laikyti char tipo masyvuose. • Šie masyvai aprašomi taip pat, kaip ir kitų tipų masyvai. char s1[10]; • Skirtumas šio masyvo tas, kad už paskutinės reikšmės masyve įrašomas eilutės pabaigos simbolis – nulis (‘\0’)

  4. Simboliųeilutėchar[] Aprašant simbolių eilutę galimas ir reikšmių priskyrimas: char s2[] = “C++ kalba”; char s2[12] = “C++ kalba”;

  5. Simboliųeilutėschar[] funkcijos • Analizės funkcijos – nekeisdamos eilutės randa kokių nors eilutės parametrų reikšmes; • Konvertavimo ir kopijavimo funkcijos – konvertuoja eilutę arba kopijuoja ją į kitą eilutę; • Modifikavimo funkcijos – kokiu nors būdu keičia eilutės reikšmę. Visos operacijos su char[] tipo masyvais atliekamos naudojant tam tikras funkcijas.

  6. Eilučių skaitymas ir rašymas • Simbolių eilutėms įvesti naudojamas operatorius >>, o išvesti <<. • Šis operatorius priskiria kintamajam visus simbolius iki pirmo tarpo simbolio arba iki eilutės pabaigos simbolio “\n”; • Jei aprašant eilutę pabaigos simbolio vieta nebuvo numatyta ar eilutė buvo įvesta ilgesnė, nei numatyta apraše, tuomet eilutės pabaigos simbolis nebeįrašomas ir veiksmai su tokia eilute tampa klaidingi arba neįmanomi.

  7. Eilučių skaitymas ir rašymas Įvesties failas • chareil[100]; • fd >> eil; • cout << eil; • Rezultatas: Man (ar supratote kodėl?) • Norint įvesti visą simbolių eilutę, reikia naudoti globaliąją funkciją get(); • Funkcijaget() išįvestiessrautoįveda n-1 simbolįirpaliekavietąeilutės pabaigos simboliui “\0”

  8. Eilučių skaitymas ir rašymas Įvesties failas • chareil[100]; • fd.get (eil, 10); • cout << eil; • Rezultatas: Man patin

  9. Eilučių skaitymas ir rašymas • Jei įvesties sraute yra mažiau simbolių, nei numatyta eilutės apraše, tuomet įvestis baigiama, aptikus pabaigos simbolį “\0”; • Jei reikia įvesti tiek simbolių, kiek nurodyta eilutės apraše, patogiau naudoti operatorių sizeof, kuris apskaičiuoja kintamojo ilgį baitais: fd.get(eil, sizeofeil);

  10. Eilučių skaitymas ir rašymas Pavyzdys.Funkcija iš srauto fd nukopijuoja n eilučių į srautą fr. voidKopijuoti (ifstream& fd, ofstream & fr, int n) { char E[100]; for (inti = 0; (i < n) && (!fd.eof()); i++) { fd.get (E, sizeof E); fr << E << endl; } }

  11. Simboliųmasyvas Pavyzdys.Simbolių nuskaitymas iš failo. voidSkaityti (char E[], int& n) { ifstreamfd(“U1.txt”); char E[100]; for (n= 0; !fd.eof() && n < 4; n++) fd >> E[n]; fd.close(); } Norintmasyvelaikytivisusteksteesančiussimbolius, įvedimosakinįpakeiskitetokiu: fd.get(E[n]);

  12. Simboliųmasyvas Pavyzdys.Simbolių masyvo reikšmių įrašymas į failą. voidRašyti (char E[], intn) { ofstream fr(“U1rez.txt”); char E[100]; for (inti= 0; i < n; i++) fr<< E[i]; fr.close(); }

  13. Simboliųeilučių masyvas • Viena simbolių eilutė yra simbolių masyvas. • Jei eilučių yra daug, patogu jas surašyti į vieną masyvą: charMas[100][15] – masyve laikoma 100 eilučių po 15 simbolių. Cout << Mas[5] << endl; - ekrane parodo 5 vietoje esančią eilutę Cout << Mas[2][12] << endl; - ekrane parodo 2 vietoje esančios eilutės 12-tą simbolį.

  14. Simboliųeilutė string • Darbui su simbolių eilutėmis yra sukurta klasė (tipas) string. • Failas, kuriame yra aprašyta klasė string, į programą įterpiamas sakiniu #include <string>. • Simboliųeilučiųkintamiejiaprašomi:stringeil, e1; • Sukurtos eilutės yra tuščios. Jas aprašant galima naudoti priskyrimą: stringeil= “Jau moku programuoti C++ kalba”;

  15. Simboliųeilutė string Darbui naudojame: • priskyrimą (=) • sudėtį (+) • lyginimą (==, !=, < irkt.) Pvz1.: string s1, s2; string s =“12”; char c = ‘z’; s1 = s; s2 = c; Ats:s1 = 12; s2 = z; Pvz2.: string s1 = “a”; s2 = “b”; string s =“12”; char c = ‘z’; s1 = s1 + s; s2 = s2 + c; Ats:s1 = a12; s2 = bz;

  16. Simboliųeilutė string • Operatorius >>įvedastringseką iki tarpo (kaip ir char) arba iki eilutės pabaigos simbolio ‘\n’. • Norint įvesti dalį simbolių naudojame globalią funkciją getline() (kaip ir char). • Galimi šios funkcijos formatai: istream& getline(istream & fd, string & str); -įvedaikieilutės pabaigossimbolio ‘\n’ istream& getline(istream & fd, string & eil, charskyr); -įvedaikiskyrikliosimbolioskyr

  17. Simboliųeilutė string

  18. Simboliųeilutė string stringeil= “Skanusagurkas”; cout << eil[5]; Atsakymas: s (masyvoelementaiindeksuojamipradedantnuo 0)

More Related