Ugrás a tartalomhoz

std::tolower

A Wikiszótárból, a nyitott szótárból


Főnév

std::tolower (tsz. std::tolowers)

  1. (informatika) A std::tolower egy függvény, amellyel karaktereket lehet kisbetűssé alakítani C++-ban. Ez akkor hasznos, amikor például t és T (vagy k és K) karakterek között nem akarsz különbséget tenni.



🔧 Használat:

#include <cctype>  // <- erre szükség van

char c = 'T';
c = std::tolower(c);  // most már 't'

⚠️ Fontos:

  • std::tolower csak egy karaktert alakít át.
  • Ha std::tolower-t szeretnél használni egy string minden karakterére, akkor azt ciklussal kell végigjárni, pl. for (char &ch : str) ch = std::tolower(ch);



Példa - Felhasználói választás kezelése kis-nagybetű függetlenül:

#include <iostream>
#include <cctype> // std::tolower

using namespace std;

int main() {
    char choice;
    cout << "t/k? ";
    cin >> choice;

    choice = std::tolower(choice);  // kisbetűs lesz

    if (choice == 't') {
        cout << "Területet számolunk.\n";
    } else if (choice == 'k') {
        cout << "Kerületet számolunk.\n";
    } else {
        cout << "Hibás választás!\n";
    }

    return 0;
}



Példa: Teljes string kisbetűssé alakítása

#include <iostream>
#include <string>
#include <cctype>  // std::tolower

using namespace std;

int main() {
    string input;
    cout << "Írj be egy szót: ";
    cin >> input;

    // Minden karakter kisbetűssé alakítása
    for (char& c : input) {
        c = std::tolower(static_cast<unsigned char>(c));
    }

    cout << "Kisbetűs változat: " << input << endl;

    return 0;
}

🔍 Miért kell a static_cast<unsigned char>?

  • A std::tolower függvény csak az unsigned char típusra vagy az EOF konstansra van definiálva.
  • Ezért signed char bemenet esetén UB-t (undefined behavior) okozhat, főleg nem angol karaktereknél.
  • A static_cast<unsigned char>(c) használata biztonságossá teszi a kódot.