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

C / C ++プログラムのmbrtowc()関数


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

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

std ::mbrtowc()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 mbrtowc()は、ナローマルチバイト文字列をワイド文字に変換することを意味します。この関数は、ナローマルチバイト文字をワイド文字表現に変換するために使用されます。

構文

size_t mbrtowc( wchar_t* pwc, char* str, size_t n, mbstate_t* ps);

パラメータ

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

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

戻り値

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

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

#include <bits/stdc++.h>
using namespace std;
void print_(const char* ch){
   mbstate_t temp = mbstate_t();
   int cal = strlen(ch);
   const char* i = ch + cal;
   int total;
   wchar_t con;
   while ((total = mbrtowc(&con, ch, i - ch, &temp)) > 0){
      wcout << "Next " << total <<" bytes are the character " << con << '\n';
      ch += total;
   }
}
int main(){
   setlocale(LC_ALL, "en_US.utf8");
   const char* len = u8"z\u00df\u6c34";
   print_(len);
}

出力

Next 1 bytes are the character z
Next 2 bytes are the character ß
Next 3 bytes are the character 水

#include <bits/stdc++.h>
using namespace std;
void print_(const char* ch){
   mbstate_t temp = mbstate_t();
   int cal = strlen(ch);
   const char* i = ch + cal;
   int total;
   wchar_t con;
   while ((total = mbrtowc(&con, ch, i - ch, &temp)) > 0){
      wcout << "Next " << total <<" bytes are the character " << con << '\n';
      ch += total;
   }
}
int main(){
   setlocale(LC_ALL, "en_US.utf8");
   const char* len = u8"\xE2\x88\x83y\xE2\x88\x80x\xC2";
   print_(len);
}

出力

Next 3 bytes are the character ∃
Next 1 bytes are the character y
Next 3 bytes are the character ∀
Next 1 bytes are the character x

  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