C++ STLのiswdigit()関数とは?使い方をわかりやすく解説
C++ STLにおけるiswdigit()関数は、指定されたワイド文字が10進数字(decimal digit)であるかどうかを判定するための組み込み関数です。この関数は、C/C++の <cwctype> ヘッダーファイル内に定義されています。
10進数字とは?
10進数字とは、0から始まる数値を表す文字のことで、具体的には「0、1、2、3、4、5、6、7、8、9」の10種類を指します。
iswdigit()関数の構文
int iswdigit(wint_t c);
パラメータ: c は判定対象となるワイド文字で、wint_t 型にキャストして渡すか、WEOF を指定します。wint_t は整数型です。
戻り値: c が10進数字である場合は0以外の値(真)を返し、そうでない場合は0(偽)を返します。
プログラムでの基本的な使い方
string型の変数(例:str[])に入力文字列を格納します
iswdigit()関数を呼び出し、対象のワイド文字が10進数字かどうかを判定します
判定結果を出力します
サンプルコード1
#include <cwctype>
#include <iostream>
using namespace std;
int main(){
wchar_t c_1 = '2';
wchar_t c_2 = '*';
// 文字が数字かどうかを判定する
if (iswdigit(c_1))
wcout << c_1 << L" は数字です" << endl;
else
wcout << c_1 << L" は数字ではありません" << endl;
if (iswdigit(c_2))
wcout << c_2 << L" は数字です" << endl;
else
wcout << c_2 << L" は数字ではありません" << endl;
return 0;
}出力結果
上記のコードを実行すると、以下のような出力が得られます。
2 は数字です * は数字ではありません
サンプルコード2
次の例では、文字列の先頭文字が数字かどうかを確認してから、wcstol()関数を使って数値へ変換しています。
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
int main (){
wchar_t str[] = L"1776ad";
long int year;
if (iswdigit(str[0])) {
year = wcstol(str, NULL, 10);
wprintf(L"The year that followed %ld was %ld.\n", year, year + 1);
}
return 0;
}出力結果
上記のコードを実行すると、以下のような出力が得られます。
The year that followed 1776 was 1777.
まとめ
iswdigit()関数を使うことで、ワイド文字が「0〜9」のいずれかの10進数字であるかどうかを簡単に判定できます。ユーザー入力のバリデーションや、文字列から数値部分を抽出する前のチェックなど、幅広い場面で活用できる便利な関数です。なお、類似の関数としてマルチバイト文字向けの isdigit() も存在するため、扱う文字の種類に応じて使い分けるとよいでしょう。
-
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