include('head.txt');?>
/*======================================================================*\ Nehany automatizalt folyamat \*======================================================================*/ aswc_counter(); // Szamlalo aswc_oldallekeres('w'); // functions.inc.php if (aswc_is_user($_SESSION['loggedin_type'])) { include 'toolbar.inc.php'; } ?>
|
|||||||
|
|||||||
Témaköreink[ 3D Studio MAX ] [ C,C++ ] [ CSS ] [ HTML/XHTML ] [ Online Marketing ] [ Photoshop ] [ PHP ] [ Putra Writer ] [ Webdesign ] Statisztika
|
C,C++ -> Karaktertömbök
KaraktertömbökA C nyelvben valószínűleg a leggyakrabban használt tömbtípus a karaktertömb. Ennek bemutatására, hogy hogyan használjuk a karaktertömböket, lássunk egy programot, ami szövegsorokat olvas be és kiírja közölük a leghosszabbat. A program váza egyszerű: while (van további sor) if (a sor hosszabb az eddigi legghosszabbnál) tárold a sort tárold a sor hosszát nyomtassd ki a leghosszabb sort A programváz alapján látszik, hogy a program több, jól elkülönülő részre osztható az első beolvassa, és megvizsgálja, a második pedig eltárolja az új sort, a fennmaradó rész pedig a folyamatot vezérli. Mivel az egyes részek ilyen jól elkülönülnek, ha a programot is ennek megfelelően írjuk meg. Ezért először írjunk egy különálló getline függvényt, aminek feladata, hogy előkészítse a következő sort. A minimális igény, hogy a getline visszatérésekor jelezze, ha elértük az állomány végét. Végül szükségünk van egy main-re a getline és a copy vezérléséhez. # include <stdio.h> # define MAXSOR 1000 /*a beolvasott sor max. mérete */ int getline(char sor[ ], int maxsor); void copy(char ba[ ], char bol[ ]); /*a leghosszabb sor kiíratása */ main() { int hossz; /*az aktuális sor hossza*/ int max; /*az eddigi maximális hossz*/ char sor[MAXSOR]; /*az aktuális sor*/ char leghosszabb[MAXSOR]; /*ide teszi a leghosszabb sort*/ max = 0; while ((hossz = getline(sor, MAXSOR)) > 0) if (hossz > max) { max = hossz; copy(leghosszabb, sor); } if (max > 0) /*volt sor, nem EOF*/ printf("%s", leghosszabb); return 0; } /*getline: egy sort beolvas az s-be */ /*és visszaadja a hosszát */ int getline(char s[ ], int lim ) { int c, i; for (i = 0; i < lim-1 && (c = getchar()) != EOF && c! = 'n'; ++i) s[i] = c; if (c == 'n') { s[i] = c; ++i; } s[i] = ' '; return i; } /* copy: a "ba" helyre másol a "bol" helyről */ void copy(char ba[ ], char bol[ ]) { int i; i = 0; while((ba[i] = bol[i]) != ' ') ++i; } A getline és copy függvényeket a program elején deklaráljuk és a programról feltételezzük, hogy egyetlen állományban van. A main és a getline egy argumentumpáron keresztül tartja a kapcsolatot és a getline egy értékkel tér vissza. A getline argumentumait az int getline(char s[ ], int lim) sorban deklaráltuk, ami azt mondja, hogy az első argumentum (s) egy tömb, a második(lim) pedig egy egész változó. A deklarációban a tömb méretének megadásától eltekinthetünk. A getline a '
|
Hello VendégAz oktatóanyagok olvasásához be kell jelentkezned.
Szeretnék regisztrálni. Elfelejtettem a jelszavam!Kiküldöm magamnak! |