Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podobne dokumenty
Podstawy programowania. Wykład: 11. Trochę różnych przykładów. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 1: Wskaźniki i zmienne dynamiczne

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 9: Polimorfizm i klasy wirtualne

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 9: Metody wirtualne i polimorfizm

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 5: Klasy cz. 3

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Wykład 8: klasy cz. 4

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Podstawy Programowania

Inicjacja tablicy jednowymiarowej

Wykład V PASCAL - operacje na znakach i łańcuchach; - dźwięk,

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

dr inż. Jarosław Forenc

Wykład 2 Składnia języka C# (cz. 1)

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

VII. Ciągi znaków łańcuchy

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Języki C i C++ Wykład: 1. Wstęp Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Języki C i C++, sem.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Podstawy programowania w języku C++

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Języki i metodyka programowania. Wprowadzenie do języka C

Język C++ Różnice między C a C++

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Wstęp do programowania

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF10Z

Języki programowania obiektowego Nieobiektowe elementy języka C++

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wykład PASCAL - Pliki tekstowe

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

Tablice deklaracja, reprezentacja wewnętrzna

Podstawy programowania

Wykład 10 Kolekcje, pliki tekstowe, c.d. Przykład: Notatnik

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak

Zasady programowania Dokumentacja

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Wstęp do programowania

lekcja 8a Gry komputerowe MasterMind

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Wstęp do programowania. Wykład 1

ŁAŃCUCHY W JĘZYKU C/C++

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

dr inż. Jarosław Forenc

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 1 / Jerzy Grębosz. Wyd. 3 C - popr. Kraków, 2015.

Wstęp do programowania

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Podstawy programowania 1

Opus Magnum C++11 : programowanie w języku C++. T. 2 / Jerzy Grębosz. Gliwice, cop Spis treści

Podstawy programowania skrót z wykładów:

Wykład 6. Operacje na łańcuchach znakowych

Programowanie obiektowe w C++ Wykład 1

Wstęp do wskaźników w języku ANSI C

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Podstawy Programowania

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Język C++ wykład VIII

BIBLIOTEKA STANDARDOWA C++

Wykład 3 Składnia języka C# (cz. 2)

Programowanie i struktury danych

PROE wykład 1. dr inż. Jacek Naruniec

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

W języku C/C++ pomiędzy wskaźnikami a tablicami istnieje bardzo ścisły związek. Do onumerowania elementów w tablicy służą tzw. INDEKSY.

Podstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

2 Przygotował: mgr inż. Maciej Lasota

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Programowanie komputerowe. Zajęcia 1

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Transkrypt:

Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako tablica znaków zakończona znakiem o numerze zero (NULL) A l a m a k o t a /0 0 1 2 3 4 5 6 7 8 9 10 11 2

Tablica znaków Obsługa zmiennych łańcuchowych (łańcuchy znaków) C++ umożliwia zastosowanie dwóch wariantów: 1. Tablica znaków (wywodzi się z języka C) 2. Użycie klasy bibliotecznej string (częściej spotykane w języku c++ oraz językach pochodnych) 3

Podstawy programowania w C++ Tablica znakowa 4

Tablica znaków Ciąg znaków (łańcuch) to kolejno zapisane znaki w pamięci. Dlatego można do jego zapisania użyć tablicy przechowującej znaki (char). Maksymalna długość tablicy Możliwe jest zainicjalizowanie takiej tablicy łańcuchem znaków 5

Tablica znaków Można też przypisywać znak do każdego pola: W takim przypadku należy pamiętać o zakończenia listy znakiem o kodzie zero /0 6

Tablica znaków Tablice znaków są kłopotliwe w obsłudze. Oto jeden z problemów: Błąd nie można przypisać łańcucha inne długości Rozwiązaniem jest potraktowanie tablicy jako wskaźnika na pierwszy element (char) 7

Tablica znaków Wypisywanie tablicy 8

Tablica znaków Wczytywanie tablicy UWAGA - ta metoda wczyta tekst tylko do pierwszej spacji (obiekt cin traktuje spacje jako separator) 9

Tablica znaków Wczytywanie tablicy Drugim sposobem, jaki można tu zastosować jest wykorzystanie metody getline( ) obiektu cin. Funkcja ta jest ukierunkowana na wczytywanie całych wierszy. Bufor to wielkość tej tablicy (tablica może przechować bufor - 1 znaków + znak końca tablicy) 10

Tablica znaków Funkcja get( ) - może działać podobnie jak getline, z tą różnicą, że znak nowego wiersza nie jest odrzucany tylko pozostaje w kolejce wejściowej. Oznacza to, że ponowne użycie get() nie pobierze ciągu znaków, ponieważ zakłada, że nastąpił już koniec wiersza. Aby zaradzić temu problemowi można użyć metody get( ) bez argumentów. Pobiera ona następny znak, a wiec znak końca linii zostanie usunięty i można ponownie wczytywać dane 11

Podstawy programowania w C++ Biblioteka string 12

String Znacznie więcej możliwości daje zestaw funkcji zawartych w bibliotece String. Aby z nich skorzystać należy dołączyć plik nagłówkowy #include <string> 13

String Wczytywanie tekstu ze standardowego wejścia Rozwiązanie: Ten sam problem jaki wystąpił przy wczytywaniu tablicy znaków wczytany zostanie tylko pierwszy wyraz (do spacji) 14

String Sklejanie tekstów 15

String Sklejanie tekstów Taka konstrukcja nie jest dozwolona. Można ją zastąpić następującą: 16

String Czyszczenie zmiennej łańcuchowej 17

String jako tablica String może być traktowany jako tablica znaków. Do określania długości strinag-a służy metoda lenght() obiektu typu string. 18

String jako tablica Przykład wypisywanie łańcucha od tyłu 19

String Wyszukiwanie znaku 20

String Wyszukiwanie znaku 21

String Wyszukiwanie znaku Funkcja find() może przyjmować 2 argumenty. 1. Argument pierwszy to znak poszukiwany, natomiast 2. drugi określa miejsce od którego należy szukać znaku w tekście. 22

String Wyszukiwanie wszystkich wystąpień znaku 23

String Porównywanie łańcuchów 24

String Porównywanie łańcuchów Łańcuchy można porównywać alfabetycznie czyli ściślej mówiąc, po kodzie ASCII znaków. 25

String substr() kopiowanie fragmentu z łańcucha od - do 26

String replace() zastępowanie części łańcucha Zauważmy liczba zastępowanych znaków nie musi być taka sama jak długość łańcucha który wklejamy. od ile znaków - czym 27

String insert () wstawiane znaków do łańcucha od - co wstawiamy 28

String erase () usuwanie części łańcucha od - do 29

String Zamiana znaku małe litery < > duże litery I odwrotnie.. 30

Podstawy programowania w C++ Tablica string-ów 31

Tablice string-ów 32

Literatura: W prezentacji wykorzystano przykłady i fragmenty: Grębosz J. : Symfonia C++, Programowanie w języku C++ orientowane obiektowo, Wydawnictwo Edition 2000. Jakubczyk K.: Turbo Pascal i Borland C++ Przykłady, Helion. Warto zajrzeć także do: Sokół R. : Microsoft Visual Studio 2012 Programowanie w Ci C++, Helion. Kerninghan B. W., Ritchie D. M.: język ANSI C, Wydawnictwo Naukowo Techniczne. Dla bardziej zaawansowanych: Grębosz J. : Pasja C++, Wydawnictwo Edition 2000. Meyers S.: język C++ bardziej efektywnie, Wydawnictwo Naukowo Techniczne 33 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD