No.2ベストアンサー
- 回答日時:
mbstrlen()ですか...これは便利そう!でも私の環境(VC6)にはありませんでした。
残念。私は1文字ずつループして数えています。漢字なら2byteで1文字とカウントする方法です。漢字かどうかは以下の関数でチェックしています。
// 漢字の1バイト目なら true
boolIsSJIS_Kanji(BYTE ch)
{
return (_ismbblead((UINT)ch) != 0) ? true : false;// 0x81~0x9F || 0xE0~0xFC
}
No.4
- 回答日時:
>また、漢字等マルチバイトの一文字目かどうかの判定には、isleadbyteも使えます。
ごめんなさい。
一文字目かどうかではなくて、マルチバイト文字の最初のバイトかどうか、です。
失礼しました。
No.3
- 回答日時:
もしVCをお使いでしたら、_mbstrlenはどうでしょうか。
//_mbstrlenはlocaleに依存するため次の呼び出しが必要
setlocale(LC_ALL, "japanese");
int length = _mbstrlen("asetg漢字");
また、漢字等マルチバイトの一文字目かどうかの判定には、isleadbyteも使えます。
VCにおいて_mbstrlenの実装に使われています。
ANSI規格に含まれているので、_mbstrlenに相当するものがない環境で役に立つかもしれません。
No.1
- 回答日時:
strlen()と文字列中のマルチバイト文字数を返すmbstrlen()の二つを使って
導き出します。
lLen = strLen(str)
mb = mbstrlen(str)
sb = llen - mb * 2
Mojisu = sb + mb
頻繁に使うなら関数化してしまうと良いのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) LEFT関数で文字数を指定しないで取りだす方法 7 2023/06/30 09:49
- Excel(エクセル) 【Excel】複数列ごとに取得するセルを変更したい 2 2023/03/23 21:04
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
バイト列とバイナリ列の違いが...
-
C++ Builderで文字列をバイトに...
-
char str[256]の256の意味は?
-
VBAでUnicodeしか存在しない文...
-
64bit対応
-
お世話になってます。HTMLのTEX...
-
機種依存文字をチェックしたい。
-
VBAでShift-JISのURLエンコード
-
文字数を取得したい
-
PICマイコンで変数値の保持
-
SQLで1バイト、2バイト混在...
-
GetWindowTextでアドレスバーか...
-
Excel VBA で Oracle CLOB型カ...
-
:(コロン)のKeyCode
-
“半角カタカナ”は、ずいぶん昔...
-
URLは最高何文字まで可能なので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
ピクセル,dpiから容量(バイト...
-
「1TB」のHDDに日本語は何字入...
-
Javaで日本語1文字のバイト数
-
機種依存文字をチェックしたい。
-
【VB2005】テキストボックス内...
-
PICマイコンで変数値の保持
-
ビットスワップとバイトスワッ...
-
SQLで1バイト、2バイト混在...
-
VBAでShift-JISのURLエンコード
-
GetWindowTextでアドレスバーか...
-
C++ Builderで文字列をバイトに...
-
64bit対応
-
UCS-2の一覧表が欲しい
-
VB.NET LeftBの代用
おすすめ情報