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

C++ STLのiswalpha()関数とは?ワイド文字の判定方法を徹底解説

C++ STLに含まれるiswalpha()関数は、指定されたワイド文字(wchar_t)がアルファベットであるかどうかを判定するために使用される関数です。文字がアルファベットであれば0以外の値(真)を返し、それ以外の場合は0(偽)を返します。

この関数を使用するには、ヘッダーファイル <cwctype> をインクルードする必要があります。ワイド文字列を扱うため、<cwchar> も併せてインクルードするのが一般的です。

アルゴリズム

Begin
   文字列を初期化する。
   iswalpha(str)関数を呼び出し、文字列にアルファベットが含まれているかどうかを確認する。
   アルファベットが含まれていれば対応する値が返され、含まれていなければゼロが返される。
End

サンプルコード

#include <cwctype>
#include <iostream>
#include <cwchar>
#include <clocale>
using namespace std;
int main() {
    setlocale(LC_ALL, "ab1234");
    wchar_t s[] = L"a%$^^&)";
    bool flag = 0;
    for (int i=0; i<wcslen(s); i++) {
        if (iswalpha(s[i])) {
            flag = 1;
            break;
        }
    }
    if (flag)
        wcout << s << L" contains alphabets";
    else
        wcout << s << L" doesn't contain alphabets";
    return 0;
}

コードの解説

このプログラムでは、まず setlocale() によってロケールを設定しています。次に、ワイド文字列 L"a%$^^&)" を定義し、forループで各文字を順番にチェックします。iswalpha(s[i]) の戻り値が真であれば、フラグを立ててループを抜けます。最後にフラグの状態に応じて、文字列にアルファベットが含まれているかどうかのメッセージを出力します。

実行結果

a%$^^&) contains alphabets

この出力例では、文字列には記号が多く含まれていますが、先頭の a がアルファベットであるため、「contains alphabets(アルファベットを含む)」という結果が表示されています。

  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