≫ ホーム ≫ C言語ヘッダファイル別一覧 | C言語アルファベット別一覧 ≫ stdlib.h ≫ strtold
文字列を long double 型に変換します.
#include <stdlib.h>
long double strtold( const char * restrict nptr, char ** restrict endptr );
strtold 関数は引数 nptr が指す文字列のはじめの数字の部分を long double 型の表現に変換します.nptr が指す文字列中に変換不可能な文字があった場合には,その文字列へのポインタを endptr に格納します.
機能がよく似た関数に strtod や strtof があります.
※1 [ ] で囲まれたところは省略可能です.
※2 空ポインタ (NULL) を指定した場合は格納されません.
※3 n 文字列 に指定できるのは以下の形式です.
strtold 関数を用いたサンプルプログラムを以下に示します.以下のサンプルプログラムでは fgets を用いて標準入力から文字列を取得し,それを strtold で long double 型に変換しています.
/* header files */
#include <stdio.h>
#include <stdlib.h>
/* macros */
#define N 256
/* main */
int main(void) {
char s[N] = {'\0'}, *endptr;
long double x;
/* 入力 */
fgets(s, N, stdin);
printf("変換前: %s", s);
/* 変換 */
x = strtold(s, &endptr);
/* 結果を表示 */
printf("変換後: %.2Lf\n", x);
printf("endptr の値: %s\n", endptr);
return EXIT_SUCCESS;
}
サンプルプログラムの実行結果は以下のようになります.
( 3.14 を入力 ) 変換前: 3.14 変換後: 3.14 endptr の値: ( 10hoge を入力 ) 変換前: 10hoge 変換後: 10.00 endptr の値: hoge ( hoge10 を入力 ) 変換前: hoge10 変換後: 0.00 endptr の値: hoge10
たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.
C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります.
オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.
ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.