Giriş
Şu satırı dahil ederiz.
Küme Metodları
isalphanum metodu
Şöyle yaparız.
Şöyle yaparız.
isupper metodu verilen karakterin büyük olup olmadığını döndürür. Normalde ASCII kullandığımız için kod çok kolaydır ancak locale işin içine girince farklı kodlar yazmak gerekir. Örneğin EBCDIC için kod şöyle bir hal alır.
Dönüşüm Metodları
tolower
Metodun imzası şöyle
Şu satırı dahil ederiz.
#include <cctype>
Bu metodlar seçili locale ile çalışır. Eğer belirtilen bir locale ile çalışmak istersek std::ctype facet kullanılır.
isalphanum metodu
Şöyle yaparız.
if (isalphanum(chValue)){...}
isblank metoduŞöyle yaparız.
if (isblank(chValue)){...}
isupper metoduisupper metodu verilen karakterin büyük olup olmadığını döndürür. Normalde ASCII kullandığımız için kod çok kolaydır ancak locale işin içine girince farklı kodlar yazmak gerekir. Örneğin EBCDIC için kod şöyle bir hal alır.
inline int is_upper_alpha(char chValue)
{
if (((chValue >= 'A') && (chValue <= 'I')) ||
((chValue >= 'J') && (chValue <= 'R')) ||
((chValue >= 'S') && (chValue <= 'Z')))
return 1;
return 0;
}
ASCII için şöyle olmalıydıinline int is_upper_alpha(char chValue)
{
return ((chValue >= 'A') && (chValue <= 'Z'));
}
Bir de locale işin içine girince ortalık daha da karışır. Bu yüzden isupper() metod altta ctype nesnesini kullanarak bizi bu zahmetten kurtarır.Dönüşüm Metodları
tolower
Metodun imzası şöyle
int std::tolower(int ch); // #include <cctype>
Metoda geçilen parametre unsigned char olarak geçilmeli.for (char &ch : mystr)
ch = std::tolower( (unsigned char)ch );
Neden var bilmiyorum ancak locale dosyası içinde de aynı isme ancak farklı imzaya sahip bir metod daha var.template<typename charT>
charT std::tolower(charT ch, const std::locale& loc); // #include <locale>
Hiç yorum yok:
Yorum Gönder