C 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列大文字小文字変換) |
(→文字列の検索と置換) |
||
4,238行: | 4,238行: | ||
http://msdn.microsoft.com/ja-jp/library/vstudio/z9da80kz.aspx | http://msdn.microsoft.com/ja-jp/library/vstudio/z9da80kz.aspx | ||
+ | |||
+ | |||
+ | マルチバイト文字の1文字を数値として取得する関数として | ||
+ | |||
+ | _strnextc、_wcsnextc、_mbsnextc、_mbsnextc_lがあり、ここでは_mbsnetcを使いました。その下に関数を使わない場合の数値の取得方法についても処理を記述しました。1文字バイト構成を羅列したときの整数値に変換した数値を抜き出したいという特殊な用途に応える関数になっています。自分で計算するのは面倒な手続きが必要になりそうなことがサンプルからわかると思います。 | ||
+ | |||
+ | http://msdn.microsoft.com/ja-jp/library/vstudio/5zsfy4ab.aspx | ||
<syntaxhighlight lang="cpp" line start="1"> | <syntaxhighlight lang="cpp" line start="1"> | ||
4,290行: | 4,297行: | ||
int SingleChr = 'r'; | int SingleChr = 'r'; | ||
unsigned int mbSingleString; | unsigned int mbSingleString; | ||
+ | unsigned int mbSingleStringNextC; | ||
unsigned int nKeta; | unsigned int nKeta; | ||
4,315行: | 4,323行: | ||
pucPos = (unsigned char*)pcSingleStr; | pucPos = (unsigned char*)pcSingleStr; | ||
+ | |||
+ | mbSingleStringNextC = _mbsnextc(pucPos); | ||
+ | printf_s( "MultiByteString検索文字 SigngleWord:%04x(%s)\n", mbSingleStringNextC, pcSingleStr); | ||
+ | |||
pucPos = _mbsinc(pucPos);//一文字分ポインタを進める関数 | pucPos = _mbsinc(pucPos);//一文字分ポインタを進める関数 | ||
result = (int)(pucPos - (unsigned char*)pcSingleStr); | result = (int)(pucPos - (unsigned char*)pcSingleStr); | ||
4,388行: | 4,400行: | ||
★マルチバイト対応検索 | ★マルチバイト対応検索 | ||
+ | MultiByteString検索文字 SigngleWord:97f1(列) | ||
f1 | f1 | ||
97 | 97 |