Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

Školení MS Word 2007 pro začátečníky RNDr. Milan Zmátlo MěÚ Třebíč, říjen 2011 Vzdělávání v eGON centru Třebíč Tento.
Základy programování (IZP) Sedmé laboratorní cvičení Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, Brno.
ZAL – 5. cvičení Martin Tomášek Pole - opakování Základní datový typ. V poli držíme více elementů (jednoho typu) S elementy v poli můžeme manipulovat.
Elektronické učební materiály - II. stupeň Informatika – aplikace informačních technologií Autor: Bc. Pavel Šiktanc Internetové stránky Co se všechno naučíme???
Výpočetní technika VY_32_INOVACE_12_16_Excel. Excel Tabulkový procesor pro vytváření tabulek a grafů Pochází z kancelářského balíku Microsoft Office Nejčastěji.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 6: Proměnné, jejich typy a práce s nimi Bc. Radek Libovický.
Poměr Co je poměr. Dělení v daném poměru..
Název prezentace (DUMu): Geometrická posloupnost – řešené příklady
ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
Lineární funkce - příklady
Inf Operační systémy a jejich funkce
Řešení nerovnic Lineární nerovnice
AUTOR: Jiřina Dáňová NÁZEV: VY_32_INOVACE_03_Druhy vět - tázací
Přetěžování Datové typy.
Vstupní a výstupní operace (1)
Uživatelem definované datové typy
Název: Trojúhelník Autor:Fyrbachová
Základy elektrotechniky Výkony ve střídavém obvodu
Programování v jazyce C++
Programování v jazyce C++
Algoritmizace a programování
Struktury.
Číslo v digitálním archivu školy
ADT zásobník - příklad Prakticky aplikovatelný příklad využití ADT zásobník je vyhodnocování aritmetických výrazů v Postfixové notaci: Pro zápis aritmetických.
Databáze MS ACCESS 2010.
Algoritmizace a programování
Grafika Prostředí picture
C# konzole – Součet dvou čísel
Střední odborná škola a Střední odborné učiliště, Vocelova 1338
Práce s řetězci Metoda Contain() - zjistí zda testovaný řetězec obsahuje určitý podřetězec Vrací True/False Úkol – zjistěte zda uživatel zadal do textového.
Poměr v základním tvaru.
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
Výukový materiál zpracován v rámci projektu
Kvadratické nerovnice
Procedury a Funkce v programovacím jazyce Pascal
Název školy: Základní škola a mateřská škola Dolní Bojanovice, okres Hodonín příspěvková organizace Číslo projektu: CZ.1.07/1.4.00/ Označení materiálu:
Číslo projektu CZ.1.07/1.4.00/ Název sady materiálů
Řešení nerovnic Lineární nerovnice
WORD Vkládání obrázků a klipartů
Výukový materiál zpracován v rámci projektu
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_21-01
Práce s textovými řetězci
Překladače Syntaktická analýza
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Střední hodnoty Udávají střed celé skupiny údajů, kolem kterého všechny hodnoty kolísají (analogie těžiště). Aritmetický průměr - vznikne součtem hodnot.
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Tresty a ochranná opatření ( trestní sankce)
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Základy algoritmizace 3/13 příkaz cyklus, proměnná typu pole
Zlomky Sčítání zlomků..
Číslo projektu CZ.1.07/1.5.00/ Název projektu Pro žáky naší školy více – Na míru píšeme učebnice VY_32_INOVACE_VJ29 Excel – funkce Počet období.
C# konzole – Textový výstup
Poměr v základním tvaru.
MATEMATIKA – ARITMETIKA 6
Průvodní list Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT   Vzdělávací materiál: Prezentace – zápis pro žáky Určen pro: 2. ročník oboru.
ÚVOD DO GEOMETRIE Tato práce je šířena pod licencí CC BY-SA 3.0. Odkazy a citace jsou platné k datu vytvoření této práce. Materiál je určen pro bezplatné.
Lineární funkce a její vlastnosti
Informatika – Základní operace s buňkami
Početní výkony s celými čísly: dělení
Vstupní a výstupní operace (1)
Algoritmizace a datové struktury (14ASD)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Union neboli sjednocení Bitová pole
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen jako posloupnost znaků, která je vždy ukončena znakem s ASCII kódem 0, např. Ahoj Hugo!\0 ● znak ukončení řetězce (\0) slouží jako zarážka pro funkce zpracovávající řetězce ● Pozor! Znaková konstanta 'A' je ukládána do jednoho bajtu typu char a žádný znak s kódem 0 se za něj neukládá

Řetězcová proměnná ● řetězcová proměnná slouží k uložení řetězce ● je to pole prvků typu char ● při vzniku se definuje počet znaků, které do ní lze maximálně uložit ● definice: char veticka[10]; /*staticky*/ ● nebo char *ret_dyn; /* dynamicky*/ ret_dyn=(char *) malloc(10);

Řetězcová proměnná ● Definice s inicializací char s1[10] = " ahoj " ; char s2[] = " nazdar " ; ● Co nelze!!! char str[10]; str = " ahoj " ; ● Co lze! char *str = " ahoj " ;

Čtení řetězce z klávesnice ● Příklad: scanf( " %s ", s1); ● před s1 není &!!! ● načte z klávesnice posloupnost znaků po případných bílých znacích až po nejbližší následující bílý znak (většinou Enter) ● někdy je vhodné omezit maximální počet načítaných znaků scanf( " %10s ", s1);

Tisk řetězce na obrazovku ● Příklad: printf( " %s ", s1); ● před s1 se nepíše *, příkaz z "%s" ví, že má očekávat ukazatel

Přístup k jednotlivým znakům ● k jednotlivým znakům lze přistupovat stejně jako k jednotlivým prvkům pole #define MAX 10 char s1[MAX]; for(i=0;i<MAX-1;i++) s1[i] = '*'; s1[MAX-1] = '\0'; printf( " %s ", s1); if (s1[3]=='x')...

Standardní řetězcové funkce ● funkce jsou uloženy v knihovně string ● před použitím je nutno knihovnu připojit #include ● Délka řetězce int strlen(char *s); např. delka = strlen( " ahoj " ); ● Kopírování řetězce char *strcpy(char *sem, char *odtud); např. strcpy(str, " ahoj " ); ● Připojení řetězce k řetězci char *strcat(char *sem, char *co); např. strcat(str, " + nazdar " );

Standardní řetězcové funkce ● Nalezení znaku v řetězci char *strchr(char *s, char c); pokud se znak c vyskytuje v s, je vrácen ukazatel na jeho první výskyt v řetězci zleva, jinak je vrácno NULL např. strchr(str, 'x') vrátí NULL if (strchr(str, 'x') == NULL) ● Porovnání dvou řetězců int strcmp(char *s1, char *s2); vrátí 0, pokud jsou s1 a s2 shodné; vrátí záporné číslo, pokud je s1<s2; jinak vrací kladné číslo

Standardní řetězcové funkce ● Nalezení podřetězce v řetězci char *strstr(char *s1, char *s2); nalezne první výskyt řetězce s2 v řetězci s1 a vrátí ukazatel na tento výskyt, jinak vrací NULL

Funkce s omezeným počtem zpracovávaných znaků ● funkce nezpracovávají řetězce až po nulový znak, ale zpracovávají jen určený počet znaků ● v názvu funkce je navíc písmenko n (number) ● Například char *strncpy(char *s1, char *s2, int max); zkopíruje nejvýše max znaků z s2 do s1

Práce s řetězcem pozpátku ● provádí stejné činnosti jako standardní funkce jen od konce směrem k počátku ● v názvu funkce je písmeno r (reverse) ● například char strrchr(char *str, char c); hledá znak c v řetězci str od konce směrem k začátku

Další informace ● Odkazy na referenční příručky naleznete na adrese -–> odkaz C/C++

Příklady k procvičení 1) Napište program, který načte z klávesnice řetězec a vypíše jej na obrazovku vepsaný do rámečku ze znaků * ************* * Ahoj Hugo * ************* 2) Existují slova, která se čtou stejně zleva i zprava (radar). Vytvořte prg., který bude tato slova generovat z jejich první načtené poloviny 3) Přečtěte řetězec délky max. 20 znaků a vytiskněte tyto znaky na jednu řádku seřazené podle abecedy vzestupně