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

例を含むC/C ++のmbrtoc32()


この記事では、C++STLでのstd::mbrtoc32()関数の動作、構文、および例について説明します。

std ::mbrtoc32()とは何ですか?

std ::mbrtoc32()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。この関数は、狭いマルチバイト文字をUTF-32文字表現に変換するために使用されます。

関連する文字ポインタがnullでなく、他のすべてのパラメータも受け入れられる場合、対応する32ビット文字を変換します。

構文

size_t mbrtoc32( char32_t* pc32, char* str, size_t n, mbstate_t* ps);

パラメータ

関数は次のパラメータを受け入れます-

  • pc32 −これは、出力を保存する場所へのポインタです。
  • str −入力として使用される文字列。
  • n −チェックするバイト数です。
  • ps −マルチバイト文字列を解釈するときの状態オブジェクトへのポインタです。

戻り値

この関数の戻り値は、次の条件によって異なります-

  • 0-変換する必要のあるstrの文字がNULLの場合、関数はゼロを返します。
  • 1…n-文字列*strから変換されるマルチバイト文字のバイト数。
  • -3-サロゲートペアが存在する場合、char32_tはmulti-char32_tからのものです。入力からバイトは作成されません。
  • -2-次のnバイトが不完全な場合、-2を取得しますが、これまでのところ有効なマルチバイト文字です。
  • -1-エンコーディングエラーが発生すると-1が返され、*pc32には何も書き込まれません。

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main(void) {
   char32_t hold;
   char str[] = "I";
   mbstate_t arr{};
   int len;
   // initializing the function
   len = mbrtoc32(&hold, str, MB_CUR_MAX, &arr);
   if (len < 0) {
      perror("conversion failed");
      exit(-1);
   }
   cout << "String is: " << str << endl;
   cout << "Length is: " << len << endl;
   printf("32-bit character = 0g%02hd\n", hold);
}

出力

String is: I
Length is: 1
32-bit character = 0g73

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main(void){
   char32_t hold;
   char str[] = "I";
   mbstate_t arr{};
   int len;
   // initializing the function
   len = mbrtoc32(&hold, str, MB_CUR_MAX, &arr);
   if (len < 0){
      perror("conversion failed");
      exit(-1);
   }
   cout << "String is: " << str << endl;
   cout << "Length is: " << len << endl;
   printf("32-bit character = 0x%08hx\n", hold);
}

出力

String is: I
Length is: 1
32-bit character = 0x0x000000490

  1. 例を使用したC/C ++のiswgraph()

    この記事では、C ++ STLでのiswgraph()関数の動作、構文、および例について説明します。 iswgraph()は、ヘッダーファイルの下にある関数です。この関数は、指定されたワイド文字にグラフィック表現があるかどうかを確認するために使用されます。この関数は、ヘッダーファイルの下にある関数isgraphのワイド文字バージョンです。 どのワイド文字がグラフィック表現されていますか? 画面に印刷できるすべてのワイド文字は、グラフィック表現を持っているものです。エスケープ文字を除いて、グラフィック表現を持っているものがあります。 構文 int iswgraph(ch); パラメータ こ

  2. C / C ++のmbrtowc()関数

    このmbrtowc()関数は、マルチバイトシーケンスをワイド文字列に変換するために使用されます。これは、マルチバイト文字の長さをバイト単位で返します。構文は次のようになります。 mbrtowc (wchar_t* wc, const char* s, size_t max, mbstate_t* ps) 引数は-です wcは、結果のワイド文字が格納される場所を指すポインタです。 sは、入力としてのマルチバイト文字列へのポインタです maxは、調べることができるs単位の最大バイト数です psは、マルチバイト文字列を解釈するときに変換状態を指します。 例 #include <b