C言語 文字列を整数値( unsigned long型 )に変換 - stdlib.h - [ strtoul ]

2008.11.01 Saturday | by LRESULT


字列を整数値( unsigned long型 )に変換するには、strtoul()を使います。


strtoul
書式 long strtoul( const char *s, char **ends, int base )
機能 文字列を整数値( unsigned long型 )に変換
引数 const char *s : 変換元も文字列
char **ends : 変換が不可能だった文字列を格納するポインタ
int base : 基数
0を指定すると、文字列の先頭に0x or 0Xがあると16進数として変換し、
0から始まる数値なら8進数として変換し、それ以外は10進数として変換します。
また、2〜36を指定すると、指定された n進数で変換します。
戻り値 unsigned long型に変換された値


引数の int baseは、どの進数として文字列を変換するかを指定します。





サンプルコード
文字列である「12345678ABCDE」を、unsigned long型の「12345678」に変換し、
変換出来なかった「ABCDE」を確認してみます。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  char *s = "12345678ABCDE";
  char *ends;
  unsigned long ul;

  ul = strtoul( s, &ends, 0 );

  printf( "変換元の文字列:%s¥n", s );
  printf( "unsigned long型に変換された値:%d¥n", ul );
  printf( "変換出来なかった文字列:%s¥n", ends );

  return 0;
}




結果
変換元の文字列:12345678ABCDE
long型に変換された値:12345678
変換出来なかった文字列:ABCDE
というように、表示されます。

strtoulの第3引数に0を指定した為、文字列を10進数と判定し
12345678として変換されています。

カテゴリ:C言語 stdlib.h | 14:54 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/96

トラックバック