C言語 ワイド文字列からマルチバイト文字列に変換 - stdlib.h - [ wcstombs ]

2008.11.09 Sunday | by LRESULT


イド文字列からマルチバイト文字列に変換するには、wcstombs()を使います。

ワイド文字・マルチバイト文字に関しては、こちら

wcstombs()は、ロケールLC_CTYPEの設定に依存する為、
  日本語のマルチバイト文字を扱う際には、setlocale( LC_CTYPE, "jpn" )
  という設定が必要になります。


wcstombs
書式 int wcstombs( char *ms, const wchar_t *ws, size_t n )
機能 ワイド文字列からマルチバイト文字列に変換
引数 char *ms : 変換されたマルチバイト文字列を格納するポインタ
const wchar_t *ws : 変換元のワイド文字列
size_t n : マルチバイト文字のバイト数を指定
戻り値 成功すると、変換したマルチバイト文字列のバイト数を返し、
失敗すると、-1を返します。



C言語 ワイド文字からマルチバイト文字に変換 - stdlib.h - [ wctomb ]

2008.11.09 Sunday | by LRESULT


イド文字からマルチバイト文字に変換するには、wctomb()を使います。

ワイド文字・マルチバイト文字に関しては、こちら

wctomb()は、ロケールLC_CTYPEの設定に依存する為、
  日本語のマルチバイト文字を扱う際には、setlocale( LC_CTYPE, "jpn" )
  という設定が必要になります。


wctomb
書式 int wctomb( char *s, wchar_t wc )
機能 ワイド文字からマルチバイト文字に変換
引数 char *s : 変換したマルチバイト文字を格納するポインタ
wchar_t wc : 変換元のワイド文字
戻り値 成功すると、マルチバイト文字のバイト数を返し、
失敗すると、-1を返します。



C言語 マルチバイト文字列からワイド文字列に変換 - stdlib.h - [ mbstowcs ]

2008.11.08 Saturday | by LRESULT


ルチバイト文字列からワイド文字列に変換するには、mbstowcs()を使います。

マルチバイト文字とは、半角の「ABC123」という1バイト文字と、
全角の「あいうえお」という2バイト文字が混在した文字で、Shift_JISやEUC-JPという
文字セットがこれにあたります。

また、ワイド文字とは、2バイトで全ての文字が表現されている文字で、
Unicodeと呼ばれる、UCS-2やUTF-16(一部例外あり)が、これにあたります。

ワイド文字型を表す、wchar_t型は、C言語では、unsigned short型で定義され、
C++では、wchar_t型が予約語として扱われます。
(gccでは、wchar_t型は通常4バイトで強制2バイトオプションもあるらしい)

mbstowcs()は、ロケールLC_CTYPEの設定に依存する為、
  日本語のマルチバイト文字を扱う際には、setlocale( LC_CTYPE, "jpn" )
  という設定が必要になります。


mbstowcs
書式 int mbstowcs( wchar_t *ws, const char *ms, size_t n )
機能 マルチバイト文字列からワイド文字列に変換
引数 wchar_t *ws : 変換したワイド文字列を格納するポインタ
const char *ms : 変換元のマルチバイト文字列
size_t n : ワイド文字の文字数を指定
戻り値 成功すると、変換したワイド文字の文字数を返し、
失敗すると、-1を返します。



C言語 マルチバイト文字からワイド文字に変換 - stdlib.h - [ mbtowc ]

2008.11.07 Friday | by LRESULT


ルチバイト文字からワイド文字に変換するには、mbtowc()を使います。

マルチバイト文字とは、半角の「ABC123」という1バイト文字と、
全角の「あいうえお」という2バイト文字が混在した文字で、Shift_JISやEUC-JPという
文字セットがこれにあたります。

また、ワイド文字とは、2バイトで全ての文字が表現されている文字で、
Unicodeと呼ばれる、UCS-2やUTF-16(一部例外あり)が、これにあたります。

ワイド文字型を表す、wchar_t型は、C言語では、unsigned short型で定義され、
C++では、wchar_t型が予約語として扱われます。
(gccでは、wchar_t型は通常4バイトで強制2バイトオプションもあるらしい)

mbtowc()は、ロケールLC_CTYPEの設定に依存する為、
  日本語のマルチバイト文字を扱う際には、setlocale( LC_CTYPE, "jpn" )
  という設定が必要になります。


mbtowc
書式 int mbtowc( wchar_t *wc, const char *mc, size_t n )
機能 マルチバイト文字からワイド文字に変換
引数 wchar_t *wc : 変換したワイド文字を格納するポインタ
const char *mc : 変換元のマルチバイト文字
size_t n : 変換するバイト数
戻り値 成功すると、マルチバイト文字のバイト数を返し、
失敗すると、-1を返します。



C言語 マルチバイト文字のバイト数を取得 - stdlib.h - [ mblen ]

2008.11.06 Thursday | by LRESULT


ルチバイト文字のバイト数を取得するには、mblen()を使用します。

マルチバイト文字とは、半角の「ABC123」という1バイト文字と、
全角の「あいうえお」という2バイト文字が混在した文字で、Shift_JISやEUC-JPという
文字セットがこれにあたります。

mblen()は、ロケールLC_CTYPEの設定に依存する為、
  日本語のマルチバイト文字を扱う際には、setlocale( LC_CTYPE, "jpn" )
  という設定が必要になります。


mblen
書式 int mblen( const char *s, size_t n )
機能 マルチバイト文字の長さを取得
引数 const char *s : マルチバイト文字
size_t n : 判定するバイト数 
戻り値 成功すると、マルチバイト文字のバイト数を返し、
失敗すると、-1を返します。



マルチバイト文字に関する定義
MB_CUR_MAX 現在のロケールのLC_CTYPE設定で、
マルチバイト文字1文字に必要な、最大バイト数
MB_LEN_MAX 全てのロケールで、
マルチバイト文字1文字に必要な、最大バイト数



C言語 構造体のバイナリサーチ(二分探索) - stdlib.h - [ bsearch ]

2008.11.05 Wednesday | by LRESULT


イナリサーチ(二分探索)を行うには、bsearch()を使います。

今回は、応用編として構造体を対象としたバイナリサーチをやってみます。

バイナリサーチを行うには、まず検索対象の要素が、
  昇順でソートされている必要があります。

バイナリサーチの基本編は、こちら


bsearch
書式 void* bsearch( const void *key,
                     const void *base,
                     size_t n,
                     size_t size,
                     int (*comp)(const void *c1, const void *c2 ) )
機能 バイナリサーチ(二分探索)を行う
引数 const void *key : 検索する値
const void *base : 検索する配列
size_t n : 配列要素の個数
size_t size : 配列要素のサイズ
int (*comp)(const void *c1, const void *c2 ) ) : 比較関数
戻り値 検索が成功した場合は、要素のポインタを返し、
発見出来なかった場合は、NULLを返します。



比較関数(comp)の戻り値
c1 < c2 負の値
c1 == c2 0
c1 > c2 正の値

比較関数の戻り値には、上記の規則があります。



C言語 構造体のクイックソート(配列要素の並び替え) - stdlib.h - [ qsort ]

2008.11.05 Wednesday | by LRESULT


イックソート(配列要素の並び替え)には、qsort()を使います。

今回は、応用編の構造体を対象としたクイックソートをやってみます。

qsort()の基本編は、こちら


qsort
書式 void qsort( void *base,
               size_t n,
               size_t size,
               int (*comp)( const void *c1, const void *c2 ) )
機能 クイックソート(配列要素の並び替え)を行う
引数 void *base : 並び替えを行う配列
size_t n : 配列要素の個数
size_t size : 配列要素のサイズ
int (*comp)( const void *c1, const void *c2 ) : 比較関数
戻り値 なし



比較関数(comp)の戻り値(昇順の場合)
c1 < c2 負の値
c1 == c2 0
c1 > c2 正の値

比較関数の戻り値には、上記の規則があり、降順にするには不等号を逆にします。



C言語 バイナリサーチ(二分探索) - stdlib.h - [ bsearch ]

2008.11.05 Wednesday | by LRESULT


イナリサーチ(二分探索)を行うには、bsearch()を使います。

バイナリサーチを使うと、配列要素内を検索する事が出来ます。

バイナリサーチを行うには、まず検索対象の要素が、
  昇順でソートされている必要があります。

構造体のバイナリサーチは、こちら


bsearch
書式 void* bsearch( const void *key,
                     const void *base,
                     size_t n,
                     size_t size,
                     int (*comp)(const void *c1, const void *c2 ) )
機能 バイナリサーチ(二分探索)を行う
引数 const void *key : 検索する値
const void *base : 検索する配列
size_t n : 配列要素の個数
size_t size : 配列要素のサイズ
int (*comp)(const void *c1, const void *c2 ) ) : 比較関数
戻り値 検索が成功した場合は、要素のポインタを返し、
発見出来なかった場合は、NULLを返します。



比較関数(comp)の戻り値
c1 < c2 負の値
c1 == c2 0
c1 > c2 正の値

比較関数の戻り値には、上記の規則があります。



C言語 クイックソート(配列要素の並び替え) - stdlib.h - [ qsort ]

2008.11.04 Tuesday | by LRESULT


イックソート(配列要素の並び替え)を行うには、qsort()を使います。


構造体のクイックソートは、こちら


qsort
書式 void qsort( void *base,
               size_t n,
               size_t size,
               int (*comp)( const void *c1, const void *c2 ) )
機能 クイックソート(配列要素の並び替え)を行う
引数 void *base : 並び替えを行う配列
size_t n : 配列要素の個数
size_t size : 配列要素のサイズ
int (*comp)( const void *c1, const void *c2 ) : 比較関数
戻り値 なし



比較関数(comp)の戻り値(昇順)
c1 < c2 負の値
c1 == c2 0
c1 > c2 正の値

比較関数の戻り値には、上記の規則があり、降順にするには不等号を逆にします。



C言語 擬似乱数(ランダム数)の種を設定 - stdlib.h - [ srand ]

2008.11.04 Tuesday | by LRESULT


似乱数(ランダム数)の種を設定するには、srand()を使います。

そもそも、乱数の種(seed)とは、rand()で発生させる乱数系列のようなもので、
種が同じだと、同じ乱数が発生するわけです。

その為、rand()を使用する際には、必ずsrand()を呼んでから乱数を使います。


srand
書式 void srand( unsigned int seed )
機能 擬似乱数(ランダム数)の種を設定
引数 unsigned int seed : 乱数の種
戻り値 なし



| 1/3PAGES | >>