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

C++ STLのiswxdigit()関数とは?構文・戻り値・使用例を徹底解説

本記事では、C++のiswxdigit()関数について、その構文、動作の仕組み、そして戻り値を詳しく解説します。

iswxdigit()関数は、C++に標準で組み込まれている関数であり、<cwctype>ヘッダーファイル内で定義されています。この関数は、引数として渡されたワイド文字が16進数の文字であるかどうかを判定します。引数が16進数の文字であれば0以外の整数値(真)を返し、そうでなければ0(偽)を返します。

ここでいう「16進数の文字」とは、以下のいずれかに該当する文字のことです。

0 1 2 3 4 5 6 7 8 9 A B C D E F

構文

int iswxdigit(wint_t ch);

この関数が受け取るパラメータは1つだけです。それは、判定対象となるワイド文字です。引数は wint_t 型または WEOF にキャストされて渡されます。

wint_t 型は、整数型のデータを格納するために使用される型です。

戻り値

この関数は整数値を返します。判定結果が偽の場合は 0 を、真の場合は 0以外の値 を返します。

使用例1:基本的な判定

#include <iostream>
#include <cwctype>
using namespace std;
int main() {
    wint_t a = 'A';
    wint_t b = '9';
    wint_t c = 'g';
    iswxdigit(a)?cout<<"\nIts hexadecimal character":cout<<"\nNot hexadecimal character";
    iswxdigit(b)?cout<<"\nIts hexadecimal character":cout<<"\nNot hexadecimal character";
    iswxdigit(c)?cout<<"\nIts hexadecimal character":cout<<"\nNot hexadecimal character";
}

出力結果

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

Its hexadecimal character
Its hexadecimal character
Not hexadecimal character

この例では、'A' と '9' は16進数で使用できる文字のため「真」と判定され、'g' は16進数の文字に含まれないため「偽」と判定されていることがわかります。

使用例2:wcstol()と組み合わせた実践的な活用

iswxdigit()関数は、文字列を16進数として変換する前に、その文字列が有効な16進数表現であるかを確認する用途でも役立ちます。以下の例では、wcstol() 関数による変換前に先頭文字をチェックしています。

#include <stdio.h>
#include <cwchar>
#include <cwctype>
using namespace std;
int main () {
    wchar_t s[] = L"ffff";
    long int num;
    if (iswxdigit(s[0])) {
        num = wcstol (s,NULL,16);
        wprintf (L"The hexadecimal number %lx is %ld.\n",num,num);
    }
    return 0;
}

出力結果

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

The hexadecimal number ffff is 65535.

まとめ

iswxdigit()関数は、ワイド文字が16進数の文字(0〜9、A〜F)であるかどうかを簡単に判定できる便利な関数です。戻り値は真の場合に0以外、偽の場合に0となるため、if文などの条件分岐と組み合わせて、入力値のバリデーションや数値変換前のチェックなど、さまざまな場面で活用できます。

  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