6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["cstdlib"], "namespace": ["std"], "id-type": ["function"]}, "sources": [{"id": "b044babb5322980493978563b73dfa2114411268", "source": "#include <iostream>\n#include <cstdlib>\n#include <clocale>\n\nint main() {\n std::setlocale(LC_ALL, \"ja_JP.UTF-8\");\n const char *str = \"\u3053\u3093\u306b\u3061\u306f\";\n int result = std::mblen(str, std::strlen(s));\n std::cout << result << std::endl;\n return 0;\n}\n"}, {"id": "428084b0192ee637949b81867c8a60136ecfe2da", "source": "#include <iostream>\n#include <cstdlib>\n#include <clocale>\n\nint count_chars_mblen(const char* s) {\n // std::mblen \u5185\u90e8\u306e std::mbstate_t \u3092\u521d\u671f\u5316\u3059\u308b\u5fc5\u8981\u3042\u308a\n std::mblen(nullptr, 0);\n\n int count = 0;\n std::size_t i = 0;\n std::size_t bytes = std::strlen(s);\n while (i < bytes) {\n int len = std::mblen(&s[i], bytes - i);\n if (len < 0) {\n len = 1;\n }\n i += len;\n count++;\n }\n return count;\n}\n\nint main() {\n std::setlocale(LC_ALL, \"ja_JP.UTF-8\");\n\n const char* str = \"\u3053\u3093\u306b\u3061\u306f\u4e16\u754c\";\n std::cout << \"\u6587\u5b57\u5217: \" << str << \"\\n\";\n std::cout << \"\u6587\u5b57\u6570: \" << count_chars_mblen(str) << \"\\n\";\n}\n"}], "page_id": ["reference", "cstdlib", "mblen"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["cstdlib"], "namespace": ["std"], "id-type": ["function"]}, "sources": [{"id": "f33c7faf4c60ed0dad5dfc6cb45a19ab328f5a5d", "source": "#include <clocale>\n#include <cstdlib>\n#include <cstring>\n#include <iostream>\n\nint main() {\n std::setlocale(LC_ALL, \"ja_JP.UTF-8\");\n const char *str = \"\u3053\u3093\u306b\u3061\u306f\";\n int result = std::mblen(str, std::strlen(str));\n std::cout << result << std::endl;\n return 0;\n}\n"}, {"id": "71a2e9a91f3dcb005628803afc8d5a31b0f308b3", "source": "#include <clocale>\n#include <cstdlib>\n#include <cstring>\n#include <iostream>\n\nint count_chars_mblen(const char* s) {\n // std::mblen \u5185\u90e8\u306e std::mbstate_t \u3092\u521d\u671f\u5316\u3059\u308b\u5fc5\u8981\u3042\u308a\n std::mblen(nullptr, 0);\n\n int count = 0;\n std::size_t i = 0;\n std::size_t bytes = std::strlen(s);\n while (i < bytes) {\n int len = std::mblen(&s[i], bytes - i);\n if (len < 0) {\n len = 1;\n }\n i += len;\n count++;\n }\n return count;\n}\n\nint main() {\n std::setlocale(LC_ALL, \"ja_JP.UTF-8\");\n\n const char* str = \"\u3053\u3093\u306b\u3061\u306f\u4e16\u754c\";\n std::cout << \"\u6587\u5b57\u5217: \" << str << \"\\n\";\n std::cout << \"\u6587\u5b57\u6570: \" << count_chars_mblen(str) << \"\\n\";\n}\n"}], "page_id": ["reference", "cstdlib", "mblen"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
188188
189189 < p class ="text-right "> < small >
190190 最終更新日時(UTC):
191- < span itemprop ="datePublished " content ="2025-12-03T02:34:02 ">
192- 2025年12月03日 02時34分02秒
191+ < span itemprop ="datePublished " content ="2025-12-03T01:48:37 ">
192+ 2025年12月03日 01時48分37秒
193193 </ span >
194194 < br />
195195 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
221221< h2 > 概要</ h2 >
222222< p > マルチバイト文字列の先頭の文字が占めるバイト数を返す。</ p >
223223< p > 先頭以外の文字に関するバイト数は計算されない。</ p >
224- < p > この関数は現在のロケールに依存してマルチバイト文字を解釈する 。</ p >
224+ < p > この関数は現在のロケールカテゴリー < code > LC_CTYPE </ code > に依存してマルチバイト文字を解釈する 。</ p >
225225< p > < code > n</ code > は解析に使用する最大バイト数を指定する。</ p >
226226< p > この関数は < code > std::mbstate_t</ code > に等価な静的記憶域の内部状態を保持し、前回の < code > mblen</ code > 関数呼び出しの続きとして処理を行う。
227227従って、この関数はスレッドセーフではない。
@@ -235,14 +235,15 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価
235235</ ul >
236236< h2 > 例</ h2 >
237237< h3 > 基本的な使い方</ h3 >
238- < p > < div class ="yata " id ="b044babb5322980493978563b73dfa2114411268 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href =" ../iostream.html " > <iostream ></ a > </ span > < span class ="cp "> </ span >
238+ < p > < div class ="yata " id ="f33c7faf4c60ed0dad5dfc6cb45a19ab328f5a5d "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> <clocale ></ span > < span class ="cp "> </ span >
239239< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../cstdlib.html "> <cstdlib></ a > </ span > < span class ="cp "> </ span >
240- < span class ="cp "> #include</ span > < span class ="cpf "> <clocale></ span > < span class ="cp "> </ span >
240+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../cstring.html "> <cstring></ a > </ span > < span class ="cp "> </ span >
241+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
241242
242243< span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span > < span class ="p "> {</ span >
243244 < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> setlocale</ span > < span class ="p "> (</ span > < span class ="n "> LC_ALL</ span > < span class ="p "> ,</ span > < span class ="s "> "ja_JP.UTF-8"</ span > < span class ="p "> );</ span >
244245 < span class ="k "> const</ span > < span class ="kt "> char</ span > < span class ="o "> *</ span > < span class ="n "> str</ span > < span class ="o "> =</ span > < span class ="s "> "こんにちは"</ span > < span class ="p "> ;</ span >
245- < span class ="kt "> int</ span > < span class ="n "> result</ span > < span class ="o "> =</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> mblen</ span > < span class ="p "> (</ span > < span class ="n "> str</ span > < span class ="p "> ,</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> strlen</ span > < span class ="p "> (</ span > < span class ="n "> s </ span > < span class ="p "> ));</ span >
246+ < span class ="kt "> int</ span > < span class ="n "> result</ span > < span class ="o "> =</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> mblen</ span > < span class ="p "> (</ span > < span class ="n "> str</ span > < span class ="p "> ,</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> strlen</ span > < span class ="p "> (</ span > < span class ="n "> str </ span > < span class ="p "> ));</ span >
246247 < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> result</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
247248 < span class ="k "> return</ span > < span class ="mi "> 0</ span > < span class ="p "> ;</ span >
248249< span class ="p "> }</ span >
@@ -252,9 +253,10 @@ <h4>出力例</h4>
252253< p > < pre > < code > 3
253254</ code > </ pre > </ p >
254255< h3 > 文字列の文字数を計算する</ h3 >
255- < p > < div class ="yata " id ="428084b0192ee637949b81867c8a60136ecfe2da "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href =" ../iostream.html " > <iostream ></ a > </ span > < span class ="cp "> </ span >
256+ < p > < div class ="yata " id ="71a2e9a91f3dcb005628803afc8d5a31b0f308b3 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> <clocale ></ span > < span class ="cp "> </ span >
256257< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../cstdlib.html "> <cstdlib></ a > </ span > < span class ="cp "> </ span >
257- < span class ="cp "> #include</ span > < span class ="cpf "> <clocale></ span > < span class ="cp "> </ span >
258+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../cstring.html "> <cstring></ a > </ span > < span class ="cp "> </ span >
259+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
258260
259261< span class ="kt "> int</ span > < span class ="nf "> count_chars_mblen</ span > < span class ="p "> (</ span > < span class ="k "> const</ span > < span class ="kt "> char</ span > < span class ="o "> *</ span > < span class ="n "> s</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
260262 < span class ="c1 "> // std::mblen 内部の std::mbstate_t を初期化する必要あり</ span >
0 commit comments