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

C++ STLのiswalnum()関数とは?ワイド文字が英数字か判定する方法

C++ STLのiswalnum()関数は、指定されたワイド文字(wchar_t)が英数字であるかどうかを判定するための関数です。ここでいう英数字とは、数字(0〜9)、大文字アルファベット(A〜Z)、小文字アルファベット(a〜z)などを指します。

この関数はヘッダーファイル <cwctype> で定義されており、引数に渡した文字が英数字であればゼロ以外の値を返し、そうでなければ0(ゼロ)を返します。

アルゴリズム

Begin
   文字を初期化する。
   関数 iswalnum(c1) を呼び出して、英数字かどうかを判定する。
   英数字であればゼロ以外の値が返され、
   そうでなければ 0 が返される。
End

サンプルコード

#include <cwctype>
#include <iostream>
using namespace std;
int main() {
    wchar_t c1 = '/';
    wchar_t c2 = 'a';
    if (iswalnum(c1))
        wcout << c1 << " is alphanumeric ";
    else
        wcout << c1 << " is not alphanumeric ";
        wcout << endl;
    if (iswalnum(c2))
        wcout << c2 << " is alphanumeric ";
    else
        wcout << c2 << " is not alphanumeric ";
   return 0;
}

実行結果

/ is not alphanumeric
a is alphanumeric

コードの解説

上記の例では、まずワイド文字型 wchar_t の変数 c1 に「/」、c2 に「a」を代入しています。その後、iswalnum() を使ってそれぞれの文字を判定しています。

  • c1 の「/」は記号であるため英数字とみなされず、「is not alphanumeric(英数字ではない)」と表示されます。
  • c2 の「a」は小文字アルファベットであるため、「is alphanumeric(英数字である)」と表示されます。

このように、iswalnum() 関数を使うことで、ワイド文字列のバリデーションや入力チェックなどの場面で、文字が英数字かどうかを簡単に判別することができます。マルチバイト文字や国際化対応のプログラムにおいて、ワイド文字を扱う際に非常に便利な関数です。

  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