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

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
Programování v C jazyku - SEMINÁŘ
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Přednáška 11 Jiří Šebesta
Standardní knihovní funkce: matematika a datum a čas
Základní pojmy v jazyce C
Programování 2 Cvičení 5.
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
Algoritmizace a programování
Programování v Pascalu Přednáška 7
Operátory (1. část) 3 A1PRG - Programování – Seminář
Datové typy 6 A1PRG - Programování – Seminář
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
Jednoduché datové typy
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Současný svět Projekt č. CZ /3. 1
Počítače a programování 1 8.přednáška. Obsah přednášky Řetězce - deklarace a vytvoření Základní metody pro práci s řetezci Znaky - třída Character Základní.
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Cvičení.
Vstupy a výstupy znaků a) Terminálový vstup a výstup ( getchar(), putchar() ) Přečtěte znak pomocí systémové funkce getchar() a vypište ho pomocí putchar().
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
Datové typy a struktury
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Příklady v jazyku C – část 2
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
C – switch Mgr. Lenka Švancarová. switch syntaxe switch (výraz) { case hodnota_1: příkaz(y)_ve_větvi_1; case hodnota_2: příkaz(y)_ve_větvi_2; … default:
KIV/PPA1 cvičení 9 Cvičící: Pavel Bžoch. Osnova cvičení Třída String a její metody –Řetězce a operace s nimi.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Práce s řetězci Řetězec je libovolný text nebo libovolná skupina znaků. Řetězec se také označuje jako string. Činnosti prováděné s řetězci: Počítání znaků.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
VISUAL BASIC PRALG.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
Vazby dynamických proměnných,databázové systémy Přednáška č. 10.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Příklady v jazyku C – část 2
Příklady v jazyku C – část 7. Napište rekurzivní podprogram, který vypočítá faktoriál a použijte ho při vyvolání v hlavním programu: #include int fakt(int.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Ř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.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Algoritmizace a programování
Úvod do programování 6. hodina
Vzorové řešení zápočtového testu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Algoritmizace a programování
Programování v jazyce C++
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Řetězce (24) Funkce strchr: deklarována v: string.h
Oblast platnosti identifikátoru (1)
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Transkript prezentace:

Standardní knihovní funkce pro práci s textovými řetězci Verze 2009.01 Standardní knihovní funkce pro práci s textovými řetězci 11 A1PRG - Programování – Seminář Ing. Michal Heczko heczko@fai.utb.cz

Agenda Znak Řetězec Definice řetězce Práce s řetězci – vstup a výstup Funkce pro práci s řetězci

Znak Datový typ char Uložení jednoho znaku – ukládá se ve formátu celého čísla odpovídající kódu v ASCII tabulce Příklad: char x = ´N´;

Řetězec Jednorozměrné pole složené z prvků datového typu char. Pro každý řetězec je rezervovaný určitý blok paměti. Řetězec je zakončen speciálním znakem ‘\0’. Znaky za ‘\0’ jsou neaktivní.

Řetězec Příklad: Je definován řetězec o délce 8 znaků, který obsahuje text „TEXT“ Obsah paměti bude vypadat následovně: 1 2 3 4 5 6 7 T E X \0

Řetězec Definice řetězce Statická Dynamická Bez inicializace char retezec[10]; S inicializací char retezec1[10] = ″text″; char retezec2[] = ″text″; Dynamická char *retezec; retezec = (char *) malloc(10);

Řetězec Řetězci nelze přiřadit konstantní hodnotu: char str[10]; str = ″text″; Nutno použít funkci strcpy(): strcpy(str,″text″);

Práce s řetězcem Načtení řetězce z terminálu: scanf(″%s″,&retezec); Není nutno zadávat ukončovací znak ‘\0’, ten je doplněn automaticky. Přečte řetězec ukončený bílým znakem (např. znak enter, ale i mezera). Pokud je nutné načíst řetězec včetně mezer, možno použít funkci gets()

Práce s řetězcem Výpis řetězce na terminál: printf(″%s″,retezec);

Práce s řetězcem Příklad: #include <stdio.h> #include <stdlib.h> int main() { char *jmeno; if ((jmeno = (char *) malloc(20)) == NULL) printf(″Nedostatek pameti″); return 1; } ...

Práce s řetězcem Příklad: ... printf(″Zadejte sve jmeno: ″); scanf(″%s″, jmeno); printf(″Vase jmeno je %s″, jmeno); free(jmeno); return 0; }

Přístup k jednotlivým znakům Řetězec je pole, takže k jednotlivým znakům se přistupuje jako k prvkům pole. Na konec však nutno doplnit ukončovací znak. Příklad: char text[11]; for (int i = 0; i < 10; i++) { text[i] = ‘x’; } text[10] = ‘\0’;

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Zjištění délky řetězce: int strlen(char *s); Vrátí délku (počet znaků) řetězce bez ukončovacího znaku. Návratová hodnota: počet znaků Příklad: strlen(″ahoj″); // výsledek: 4

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Kopírování řetězce: char *strcpy(char *s1, char *s2); Zkopíruje obsah řetězce s2 do řetězce s1. Návratová hodnota: ukazatel na začátek řetězce s1 Příklad: strcpy(str, ″ahoj″);

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Kopírování řetězce: char *strcat(char *s1, char *s2); Připojí obsah řetězce s2 k řetězci s1. Návratová hodnota: ukazatel na začátek řetězce s1 Příklad: strcat(str, ″ahoj″);

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Nalezení znaku v řetězci: char *strchr(char *s, char c); Návratová hodnota: Ukazatel na první výskyt znaku c v řetězci s nebo hodnota NULL. Příklad: char str[10] = ″ahoj″; strchr(str, ‘x’); // Výsledek: NULL

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Nalezení podřetězce v řetězci: char *strstr(char *s1, char *s2); Návratová hodnota: Ukazatel na první výskyt podřetězce s2 v řetězci s1 nebo hodnota NULL. Příklad: char str[10] = ″ahoj″; strstr(str, ″xy″); // Výsledek: NULL

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Porovnání dvou řetězců: int *strcmp(char *s1, char *s2); Návratová hodnota: Vrátí 0, pokud jsou řetězce shodné, záporné číslo, pokud je s1 lexiograficky menší, kladné, pokud je větší.

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Práce s omezenou částí řetězce: Funkce mají v názvu znak n. Pracují pouze s prvními n znaky Př.: char *strncpy(char *s1, char *s2, int max);

Funkce pro práci s řetězci Hlavičkový soubor <string.h> Práce s řetězcem pozpátku: Funkce mají v názvu znak r. Pracují s řetězcem zprava doleva. Př.: char *strrchr(char *s, char c);

Funkce pro práci s řetězci Hlavičkový soubor <stdlib.h> Převod řetězce na celé číslo: int atoi(char *s); Vrací celočíselnou hodnotu obsahu řetězce. Zkratka z Ascii TO Int. Př.: char cislo[] = ″241″; int hodnota; hodnota = atoi(cislo);

Funkce pro práci s řetězci Hlavičkový soubor <stdlib.h> Převod řetězce na dlouhé celé číslo: long atol(char *s); Vrací celočíselnou hodnotu obsahu řetězce. Zkratka z Ascii TO Long. Př.: char cislo[] = ″241″; long hodnota; hodnota = atol(cislo);

Funkce pro práci s řetězci Hlavičkový soubor <stdlib.h> Převod řetězce na racionální číslo: double atof(char *s); Vrací hodnotu obsahu řetězce. Hodnota datového typu racionální číslo s dvojitou přesností. Zkratka z Ascii TO Float. Př.: char cislo[] = ″241.1″; double hodnota; hodnota = atof(cislo);

Testování tříd znaků Hlavičkový soubor <ctype.h> Všechny makra pro testování tříd znaků jsou zapsány ve tvaru: istypznaku(znak); Návratovou hodnotou je 0, pokud se nejedná o daný typ znaku, v opačném případě nenulová hodnota.

Testování tříd znaků Hlavičkový soubor <ctype.h> Makro Kdy vrací nenulovou hodnotu isalnum(z); … číslice, malé nebo velké písmeno isalpha(z); … malé nebo velké písmeno isdigit(z); … číslice islower(z); … malé písmeno isprint(z); … tisknutelný znak (včetně mezery) isspace(z); … mezera, tabulátor nebo konec řádku isupper(z); … velké písmeno isxdigit(z); … hexadecimální číslice

Konverze znaku Hlavičkový soubor <ctype.h> Všechny makra pro konverzi znaku jsou zapsány ve tvaru: totypznaku(znak); Návratovou hodnotou je znak převedený na daný typ znaku.

Konverze znaku Hlavičkový soubor <ctype.h> Makro Popis toupper(z); … převod na velké písmeno tolower(z); … převod na malé písmeno

A1PRG-s 11. Řetězce Děkuji za pozornost Ing. Michal Heczko heczko@fai.utb.cz 218/U3 Prezentace k dispozici na http://vyuka.fai.utb.cz