cctype library
Megjelenés
Főnév
cctype library (tsz. cctype libraries)
- (informatika) A cctype (korábban ctype.h) egy C++ standard könyvtár, amely olyan függvényeket tartalmaz, amelyek karakterek osztályozására és konvertálására szolgálnak. Ez a könyvtár elsősorban az ASCII karaktereket kezeli, de kompatibilis a nemzetközi karakterkészletekkel is, ha a megfelelő lokalizációt alkalmazzuk.
1. cctype függvények és használatuk
A következő függvények az <cctype> fejlécben találhatók, és a std névtér nélkül is használhatók, mivel ezek a C szabványos függvényei:
Karakterosztályozás
Ezek a függvények egy karaktert ellenőriznek, és igaz (true) vagy hamis (false) értéket adnak vissza attól függően, hogy a karakter megfelel-e egy adott kategóriának.
| Függvény | Leírás |
|---|---|
isalnum(int c) |
Igaz, ha c betű (A-Z, a-z) vagy számjegy (0-9). |
isalpha(int c) |
Igaz, ha c betű (A-Z vagy a-z). |
iscntrl(int c) |
Igaz, ha c vezérlőkarakter (pl. \n, \t). |
isdigit(int c) |
Igaz, ha c számjegy (0-9). |
isgraph(int c) |
Igaz, ha c nyomtatható, kivéve a szóköz (isprint(c) && !isspace(c)). |
islower(int c) |
Igaz, ha c kisbetű (a-z). |
isprint(int c) |
Igaz, ha c nyomtatható karakter (beleértve a szóközt is). |
ispunct(int c) |
Igaz, ha c írásjel (!isalnum(c) && !isspace(c) && isprint(c)). |
isspace(int c) |
Igaz, ha c fehér karakter (szóköz, tabulátor, sortörés stb.). |
isupper(int c) |
Igaz, ha c nagybetű (A-Z). |
isxdigit(int c) |
Igaz, ha c hexadecimális számjegy (0-9, A-F, a-f). |
Példa:
#include <iostream>
#include <cctype>
int main() {
char ch = 'A';
if (isalpha(ch)) {
std::cout << ch << " egy betű." << std::endl;
}
if (isupper(ch)) {
std::cout << ch << " egy nagybetű." << std::endl;
}
return 0;
}
Karakterkonverzió
Ezek a függvények egy karaktert más formátumra alakítanak:
| Függvény | Leírás |
|---|---|
tolower(int c) |
Kisbetűvé alakítja c karaktert (ha lehetséges). |
toupper(int c) |
Nagybetűvé alakítja c karaktert (ha lehetséges). |
Példa:
#include <iostream>
#include <cctype>
int main() {
char ch = 'b';
char upper = toupper(ch);
char lower = tolower('D');
std::cout << "Kisbetűből nagybetű: " << upper << std::endl;
std::cout << "Nagybetűből kisbetű: " << lower << std::endl;
return 0;
}
2. Gyakorlati alkalmazás
Szöveg betűinek számolása
#include <iostream>
#include <cctype>
#include <string>
int main() {
std::string szoveg = "Hello, Világ 2025!";
int betuk = 0, szamok = 0, egyeb = 0;
for (char ch : szoveg) {
if (isalpha(ch))
betuk++;
else if (isdigit(ch))
szamok++;
else
egyeb++;
}
std::cout << "Betűk: " << betuk << ", Számok: " << szamok << ", Egyéb: " << egyeb << std::endl;
return 0;
}
Kisbetűsítés
#include <iostream>
#include <cctype>
#include <string>
int main() {
std::string szoveg = "Helló, Világ!";
for (char& ch : szoveg) {
ch = tolower(ch);
}
std::cout << szoveg << std::endl;
return 0;
}
3. Fontos megjegyzések
- A függvények
inttípusú paramétert vesznek át, de ez általában egy karakter (char) ASCII kódját jelenti. - Ha a függvények nem ASCII karaktert kapnak (például UTF-8 többbájtos karaktereket), akkor az eredmény nem garantált.
- Lokalizáció: Ha nemzetközi karaktereket akarunk kezelni, használjunk
std::localeésstd::tolower/std::toupperfüggvényeket az<locale>fejlécből.
Lokalizációs példa
#include <iostream>
#include <locale>
int main() {
std::locale loc("hu_HU.UTF-8");
wchar_t ch = L'Ő';
std::wcout.imbue(loc);
std::wcout << std::tolower(ch, loc) << std::endl; // ő
return 0;
}
4. Összegzés
- A cctype függvények hasznosak a karakterek osztályozására és módosítására.
- Alapvetően ASCII karakterekkel működnek, de lokalizációval bővíthetőek.
- A
toloweréstoupperkonverziók nem mindig működnek megfelelően nemzetközi karakterek esetén. - Alternatívák: Használjunk
std::localeésstd::wstringUnicode szövegkezeléshez.
- cctype library - Szótár.net (en-hu)
- cctype library - Sztaki (en-hu)
- cctype library - Merriam–Webster
- cctype library - Cambridge
- cctype library - WordNet
- cctype library - Яндекс (en-ru)
- cctype library - Google (en-hu)
- cctype library - Wikidata
- cctype library - Wikipédia (angol)