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

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


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

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

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

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

構文

size_t mbrtoc16( char16_t* pc16, char* str, size_t n, mbstate_t* ps);

パラメータ

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

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

戻り値

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

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

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main(void){
   char16_t hold;
   char str[] = "I";
   mbstate_t arr{};
   int len;
   // initializing the function
   len = mbrtoc16(&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("16-bit character = 0g%02hd\n", hold);
}

出力

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

  1. C / C ++のmbsrtowcs()関数

    この記事では、C++STLでのstd::mbsrtowcs()関数の動作、構文、および例について説明します。 std ::mbsrtowcs()とは何ですか? std ::mbsrtowcs()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 mbsrtowcs()は、最初のバイトが*srcであるヌル終了マルチバイト文字ストリングをワイド文字表現に変換することを意味します。この関数は、変換に応じた値を返します。 構文 size_t mbsrtowcs(wchar_t * pwc、char ** str、size_t n、mbstate_t * p

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

    与えられたタスクは、C / C ++でのsystem()の動作を示すことです。 system()関数は、C /C++標準ライブラリの一部です。コマンドプロセッサまたはオペレーティングシステムの端末で実行できるコマンドを渡すために使用され、完了後に最終的にコマンドを返します。 この関数を呼び出すには、またはを含める必要があります。 構文 構文は次のとおりです- int system(char command) コマンドがエラーなしで実行された場合、この関数はゼロを返します。 例 Input: system(“date”) Output: The current d