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文などの条件分岐と組み合わせて、入力値のバリデーションや数値変換前のチェックなど、さまざまな場面で活用できます。
-
C++ STLのcosh()関数とは?双曲線余弦の求め方をサンプルコード付きで解説
cosh()関数とは? C++のSTLに組み込まれているcosh()関数は、ラジアン単位で与えられた角度の双曲線余弦(ハイパボリック・コサイン)を計算して返す関数です。使用するには、<cmath>ヘッダーをインクルードする必要があります。 双曲線余弦は、数学的に次の式で定義されます。 cosh(x) = (e^x + e^(-x)) / 2 構文 cosh()関数の構文は以下の通りです。 cosh(var) 構文から分かるように、cosh()関数はfloat型、double型、long double型のいずれかの引数varを受け取ります。そして、その双曲線余弦を返します。なお、引
-
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