はじめに C言語で日本語文字列を扱う場合は、例えば、ワイド文字のライブラリを使用する方法があります(参考:C言語用語集 - ワイド文字 )。 しかし、ワイド文字は、1文字あたりのバイト数を固定して処理することが前提であるため、可変長の文字コード(UTF-8、SHIFT_JIS、EUC-JPなどのマルチバイト文字)を扱うには、別の方策が必要となります。 (以上、yumetodoさんのご指摘を受け一部修正をさせていただきました。) ここでは、マルチバイト文字における「日本語文字数のカウント」及び「日本語文字列の切り出し」について、サンプルコードとともにまとめておきます。 なお、日本語文字数のカウント(UTF-8、SHIFT_JISのみ)については、1年前に自分のHPにも書いています。 今回は、当時の記述の補正もしつつ、各文字コードについて一覧的に記述をしています。 使用しているコンパイラはgc