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

C/C++のiswpunct()関数とは?使い方とサンプルコードを解説

iswpunct()関数の概要

C/C++のiswpunct()関数は、引数として渡されたワイド文字が句読点(記号)であるかどうかを判定するための関数です。判定結果は以下のように返されます。

  • ワイド文字が句読点である場合:非ゼロの値(真)を返す
  • ワイド文字が句読点でない場合:0(偽)を返す

この関数を使用するには、ヘッダーファイル「cwctype」をインクルードする必要があります。

iswpunct()関数の構文

int iswpunct(wint_t character);

パラメータ

  • character:判定対象となるワイド文字(wint_t型)

戻り値

  • 句読点の場合:非ゼロの値
  • 句読点以外の場合:0

iswpunct()関数の使用例

以下は、iswpunct()関数を使ってワイド文字が句読点かどうかを判定するサンプルプログラムです。

#include<cwctype>
#include<stdio.h>
using namespace std;
int main() {
   wint_t a = '!';
   wint_t b = 'a';
   if(iswpunct(a))
   printf("The character is a punctuation.");
   else
   printf("\nThe character is not a punctuation.");
   if(iswpunct(b))
   printf("\nThe character is a punctuation.");
   else
   printf("\nThe character is not a punctuation.");
   return 0;
}

実行結果

The character is a punctuation.
The character is not a punctuation.

プログラムの解説

上記のプログラムでは、2つのワイド文字変数 ab を宣言しています。a には記号「!」を、b には英字「a」を代入しています。

wint_t a = '!';
wint_t b = 'a';

その後、if文と組み合わせてiswpunct()関数を呼び出し、各文字が句読点であるかどうかを判定しています。

  • 変数 a の「!」は記号に分類されるため、iswpunct()は非ゼロの値を返し、「The character is a punctuation.」(この文字は句読点です)と表示されます。
  • 一方、変数 b の「a」は英字であり記号ではないため、iswpunct()は0を返し、「The character is not a punctuation.」(この文字は句読点ではありません)と表示されます。

まとめ

iswpunct()関数は、ワイド文字列の処理において特定の文字が記号・句読点かどうかを簡単に判別できる便利な関数です。テキスト解析や入力バリデーションなど、文字種別ごとに処理を分けたい場面で活用できます。なお、通常のマルチバイト文字に対しては同様の機能を持つ ispunct() 関数が用意されているので、用途に応じて使い分けるとよいでしょう。

  1. C/C++のmbsrtowcs()関数とは?構文・パラメータ・戻り値と実例を解説

    本記事では、C++ STLに含まれるstd::mbsrtowcs()関数の仕組み、構文、および具体的な使用例について詳しく解説します。 std::mbsrtowcs()とは? std::mbsrtowcs()は、C++ STLに組み込まれている関数で、<cwchar>ヘッダーファイル内で定義されています。関数名のmbsrtowcs()は「multibyte string to wide character string(マルチバイト文字列からワイド文字列への変換)」を意味し、再開可能な変換状態を維持しながら、NULL終端されたマルチバイト文字列をワイド文字列表現へと変換します。この

  2. C/C++のsystem()関数とは?使い方と実行例を徹底解説

    この記事では、C/C++におけるsystem()関数の基本的な使い方と動作について、具体例を交えながら詳しく解説します。 system()関数は、C/C++標準ライブラリに含まれる関数の一つです。オペレーティングシステムのコマンドプロセッサ(コマンドプロンプト)やターミナルで実行可能なコマンドをプログラムから渡して実行でき、コマンドの処理が完了すると制御をプログラムに戻します。 この関数を使用するには、ヘッダーファイル<stdlib.h>(C++の場合は<cstdlib>)をインクルードする必要があります。 構文 system()関数の構文は以下の通りです。 int