C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++ STLのiswctype()関数とは?使い方とサンプルコードをわかりやすく解説

C++の標準テンプレートライブラリ(STL)において、iswctype()関数は、指定されたワイド文字が引数descで示されるプロパティ(文字分類)を持っているかどうかを判定するために使用されます。

iswctype()は組み込み関数であり、ヘッダーファイル「wctype.h」(C++では「cwctype」)で宣言されています。

iswctype()関数の構文

int iswctype(wint_t c, wctype_t desc);

この関数は、ワイド文字cdescで指定されたプロパティを持つかどうかをチェックします。

パラメータ(引数)

c … 判定対象となるワイド文字です。整数型wint_tにキャストして渡します。

descwctype()関数の呼び出しによって返される値です。wctype_tはスカラー型であり、ワイド文字の分類種別を表すために使用されます。

戻り値

ワイド文字cが実際にdescで識別されるプロパティを持っている場合は、0以外の値(真)を返します。持っていない場合は、0(偽)を返します。

C++におけるiswctype()関数のサンプルプログラム

以下のプログラムでは、文字列内の小文字を判定し、大文字に変換して出力しています。

#include <stdio.h>
#include <wctype.h>
int main (){
    int i=0;
    wchar_t str[] = L"Test String.\n";
    wchar_t c;
    wctype_t check = wctype("lower");
    wctrans_t trans = wctrans("toupper");
    while (str[i]){
        c = str[i];
        if (iswctype(c,check)) c = towctrans(c,trans);
        putwchar (c);
        i++;
    }
    return 0;
}

プログラムの処理内容

このコードでは、まずwctype("lower")を使って「小文字」という分類プロパティを取得し、wctrans("toupper")で大文字への変換方式を取得しています。その後、文字列を1文字ずつ走査し、iswctype()で小文字かどうかを判定し、小文字であればtowctrans()によって大文字へ変換してから出力します。

実行結果

上記のコードを実行すると、次のような出力が生成されます。

TEST STRING.

まとめ

iswctype()関数は、ワイド文字の分類を柔軟に行える便利な関数です。wctype()と組み合わせることで、「小文字」「大文字」「数字」などさまざまな文字プロパティを動的に判定でき、多言語対応の文字処理において特に役立ちます。

  1. C++ STLのcosh()関数とは?双曲線余弦の求め方をサンプルコード付きで解説

    cosh()関数とは? C++のSTLに組み込まれているcosh()関数は、ラジアン単位で与えられた角度の双曲線余弦(ハイパボリック・コサイン)を計算して返す関数です。使用するには、<cmath>ヘッダーをインクルードする必要があります。 双曲線余弦は、数学的に次の式で定義されます。 cosh(x) = (e^x + e^(-x)) / 2 構文 cosh()関数の構文は以下の通りです。 cosh(var) 構文から分かるように、cosh()関数はfloat型、double型、long double型のいずれかの引数varを受け取ります。そして、その双曲線余弦を返します。なお、引

  2. C++ STLのsinh()関数の使い方を徹底解説

    sinh()関数とはsinh()関数は、ラジアンで指定された値の双曲線正弦(ハイパボリックサイン)を返す関数です。C++のSTL(標準テンプレートライブラリ)に組み込まれており、<cmath>ヘッダをインクルードすることで利用できます。双曲線正弦は、以下の数式で定義されます。sinh(x) = (e^x − e^−x) / 2sinh()関数の構文sinh()関数の構文は以下のとおりです。sinh(var)構文からわかるように、sinh()関数はfloat型、double型、long double型のいずれかのパラメータvarを受け取ります。戻り値は、varの双曲線正弦です。sin