C++:
המרת מחרוזת לאותיות קטנות
איך לעשות:
בדוגמה הבאה נשתמש בפונקציה std::transform
כדי להמיר כל אות במחרוזת לאות קטנה.
#include <iostream>
#include <algorithm>
#include <string>
#include <cctype> // לשימוש בפונקציה tolower
int main() {
std::string text = "HeLLo WoRLD!";
std::transform(text.begin(), text.end(), text.begin(),
[](unsigned char c) -> unsigned char { return std::tolower(c); });
std::cout << text; // פלט: hello world!
return 0;
}
מבט עמוק:
היסטורית, המרה לאותיות קטנות התבצעה גם בעזרת לולאות שרצו על כל תו במחרוזת וביצעו השוואות והמרות ידניות. כלי הסטנדרטי std::transform
הגיע לפשט את התהליך הזה. חלופות נוספות כוללות שימוש בפונקציות כמו tolower
בצורה ישירה בתוך לולאה או שימוש בספריות שלישיות שמוסיפות יכולות מניפולציה על מחרוזות.
גם כאשר משתמשים בstd::tolower
, חשוב להעביר את הפרמטר כ-unsigned char
כדי למנוע בעיות עם תווים שאינם חלק מ-ASCII. עם זאת, כשעובדים עם UTF-8 או מערכת תווים אחרת, עלולות להיות דרישות מיוחדות שצריך לתת להן את הדעת.
ראה גם:
- Documentation on
std::transform
: https://en.cppreference.com/w/cpp/algorithm/transform - Documentation on
std::tolower
: https://en.cppreference.com/w/cpp/string/byte/tolower - C++ reference for
std::string
: https://en.cppreference.com/w/cpp/string/basic_string - Unicode handling in C++: https://unicode-org.github.io/icu/userguide/cpp/