7/8. gyakorlat Karaktertömbök és sztringkezelés

Hasonló dokumentumok
10. gyakorlat Tömb, mint függvény argumentum

Programozás alapjai 9.Gy: Struktúra 2.

Programozás I gyakorlat. 10. Stringek, mutatók

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

C string műveletek (string.h alkalmazása)

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás 6. Dr. Iványi Péter

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Programozás I gyakorlat

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Karakter- és sztringkezelő függvények, matematikai függvények

5. gyakorlat. Konstansok Tömbök Stringek

Példák tematikus csoportosításban

Megoldott programozási feladatok standard C-ben

Programozás I gyakorlat

Szövegek C++ -ban, a string osztály

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Programozás I. gyakorlat

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

INFORMATIKA tétel 2018

Programozás alapjai 8.Gy: Program struktúra

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e:

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {

1. Alapok. Programozás II

Programozás alapjai. 5. előadás

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programozás alapjai 1. (BMEVIEEA100)

Programozás I gyakorlat

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Programozás I. gyakorlat

BASH script programozás II. Vezérlési szerkezetek

INFORMATIKA javítókulcs 2016

Algoritmusok pszeudókód... 1

Maximum kiválasztás tömbben

Megoldott programozási feladatok standard C-ben

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Adatbázis rendszerek Gy: Algoritmusok C-ben

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Programozás II. Fájlkezelés

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Adatbázisrendszerek I. File-szintű adattárolás C-ben. 1. gyakorlat

Programozás II. 2. Dr. Iványi Péter

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

6. A Pascal nyelv utasításai

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Példatár a Programozás 1 tárgyhoz

Tartalomjegyzék Algoritmusok - pszeudókód

Bevezetés a programozásba I.

INFORMATIKA tétel 2019

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

5. Gyakorlat. struct diak {

Stack Vezérlés szerkezet Adat 2.

értékel függvény: rátermettségi függvény (tness function)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Bevezetés a programozásba I.

Webprogramozás szakkör

Informatika terméktervezőknek

Algoritmusok pszeudókód... 1

Feladatgyűjtemény a C programozási nyelvhez

Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE

10. gyakorlat. Pointerek Tárolási osztályok

Bevezetés a C++ programozásba

OOP: Java 1.Gy: Java alapok

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

7. fejezet: Mutatók és tömbök

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

AWK programozás, minták, vezérlési szerkezetek

Programozási segédlet

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

Vezérlési szerkezetek

Átírás:

7/8. gyakorlat Karaktertömbök és sztringkezelés 1. feladat: Karaktertömb kezelése Egy beolvasott karaktert lineáris kereső eljárással keressen meg az angol ábécében (az ábécé betűit tárolja inicializált karakter tömbben). #include <stdlib.h> #include <ctype.h> #define TRUE 1 #define FALSE 0 int main() { char abc[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'; int i, found = FALSE; char key; //nincs lezáró nulla a végén! printf("give the character you're searching for: "); scanf(" %c", &key); //VAGY key = getchar(); if (isalpha(key)) { for(i=0; i<sizeof(abc) &&!found; i++) { if (abc[i] == key abc[i] == tolower(key)) { found = TRUE; printf("this character is the %d. in the ABC.\n", i); else printf("this character is not an ABC letter.\n"); 2. feladat: Sztringkezelés Inicializáljon, illetve Esc+Enter lenyomásáig olvasson be a szabványos bemenetről egy szöveget. Ezen a szövegen az alábbi műveleteket hajtsa végre. a) A szöveg megfordítása, illetve fordított kiírása. b) A szöveg nagybetűssé konvertálása. c) A szövegben az E betűk megszámolása. Figyelem! Ha a szöveg beolvasását a scanf("%s", szoveg); utasítással valósítja meg, az nem tartalmazhat space karaktert. Ahol lehet, próbálják ki a standard sztringkezelő függvények használatát.

a) A szöveg megfordítása. #include <string.h> // sztringkezelő fv-ek #include <ctype.h> // karakterkonverziós fv-ek #define N 100 #define ESC 27 // Esc billentyű ASCII kódja int main() { char szoveg[n], forditott[n], nagy[n]; int i, j; //szöveg beolvasása char ch; printf("esc+enter lenyomasaig olvassa a karaktereket:\n"); i = 0; while ((ch=getchar())!= ESC) { szoveg[i] = ch; szoveg[i] = '\0'; //szöveg kiírása printf("a beolvasott szöveg:\n%s\n", szoveg); //fordított kiírás for(i=strlen(szoveg)-1; i>=0; i--) { printf("%c", szoveg[i]); // lehet benne szóköz //szöveg megfordítása (fordítva másolás, pointeres) char *fp = forditott; i = strlen(szoveg)-1; while (i>=0) { *fp = szoveg[i]; fp++; i--; *fp= '\0'; /* //szöveg megfordítása (fordítva másolás) for(i=strlen(szoveg)-1, j=0; i>=0; i--, j++) { forditott[j] = str[i]; forditott[j] = '\0'; */ printf("\na szöveg megfordítva:\n%s", forditott); //sztring megfordítása (karakterek felcserélése) char seged; for(i=0, j=strlen(szoveg)-1; i<strlen(szoveg)/2; i++, j--) { seged = szoveg[i]; szoveg[i] = szoveg[j];

szoveg[j] = seged; printf("%s\n", szoveg); b) A szöveg nagybetűssé konvertálása. Az egyik megoldás az előzőhöz hasonló: //nagybetűsen másol új tömbbe char *nf = nagy; i=0; while (i<strlen(szoveg)) { *nf = toupper(szoveg[i]); nf++; *nf = '\0'; printf("\na szöveg nagybetűsen:\n%s", nagy); A feladat másik megoldása, ha magát a szöveget konvertálja nagybetűssé: //eredetit nagybetűsít printf("eredeti szöveg:\n%s", szoveg); char *sp = szoveg; while(*sp) { *sp=toupper(*sp); sp++; *sp = '\0'; printf("\na szöveg nagybetűsen:\n%s", szoveg); c) A szövegben az E betűk megszámolása. //'E' betűk megszámolása int db = 0; sp = szoveg; i = 0; while(*sp) { if (*sp=='e') db++; sp++; printf("\na szövegben az 'E' betűk száma: %d\n", db); printf("ez %.2f%%-a a szöveg karaktereinek.\n", ((float)db/i)*100);

3. feladat: Sztringek tömbje. Akasztófa játék #include <stdlib.h> #include <ctype.h> #include <time.h> #define MERET 5 int main() { char betu; int talalat=0, i, kerdes=0; //mutatótömb, mérete nem számítható ki dinamikusan char *szavak[meret] = {"kertmozi", "balettruha", "zuhanykabin", "hangyaboly", "sajttorta"; srand(time(0)); char *gondolt = szavak[rand()%meret]; //az egyik szó kiválasztása char kitalalt[strlen(gondolt)+1]; //a kitalalt tömb inicializálása helypótló karakterekkel, pointeres megoldás char *init = kitalalt; char *gp = gondolt; while (*gp) { *init = '_'; init++; gp++; *init = '\0'; /* //tömbös megoldás for (i=0; i<strlen(gondolt)-1; i++) { kitalalt[i] = '_'; kitalalt[i] = '\0'; */ printf("felírtam egy szót. Találd ki! Kérdezz betűket!\n"); printf("a gondolt szó: %s\n", kitalalt); do { printf("van benne? "); scanf(" %c", &betu); kerdes++; for (i=0; i<strlen(gondolt); i++) { if (gondolt[i]==tolower(betu)) { kitalalt[i]=tolower(betu); talalat++; printf("%s\n", kitalalt); while (strlen(gondolt)!=talalat); printf("gratulálok, %d kérdésből kitaláltad!", kerdes);

Házi feladat: 1. ESC lenyomásáig olvasson be egy szöveget és számolja meg benne a magánhangzókat. Állapítsa meg, hogy a szöveg karaktereinek hány százaléka magánhangzó. A magánhangzókat inicializált karaktertömbben tárolja! 2. Inicializáljon két sztringet és próbálja ki a string.h standard függvényeit (sztring hosszának meghatározása, sztring másolás, sztring hozzáfűzés, karakter keresése sztringben, rész-sztring keresés, két sztring összehasonlítása). 3. Olvasson be egy sztringet, majd írja ki virágnyelven; azaz minden magánhangzót v előtaggal megismételve. Például: alma avalmava. 4. Olvasson be egy sztringet, és állapítsa meg, hogy palindróma-e; azaz visszafelé olvasva ugyanazt a szót kapjuk-e. Próbálja meg ugyanezt a feladatot space-t is tartalmazó szövegre is megoldani. Palindrómára példa: Géza kék az ég. 5. Az akasztófa játékot (4. feladat) tegye folyamatos működésűvé.