C言語 文字列から書式付きで取得 - stdio.h - [ sscanf ]
2008.10.19 Sunday | by LRESULT
文字列から書式付きで、データを取得するには、sscanf()を使用します。
基本的な使い方は、scanf()と同じような使い方です。
書式 | int sscanf( const char *s, const char *format, ... ) |
---|---|
機能 | 文字列から書式付きで、データを取得する |
引数 | const char *s : 入力元となる文字列 const char *format : 書式文字列 ... : 可変個引数で書式で指定された変数をカンマ区切りで指定 |
戻り値 | 成功すると、入力項目数を返し、 失敗すると、EOF(-1)を返します。 |
入力元となる文字列「10 A0 123.456 ABCDEFG」から、 「10進数 16進数 浮動小数点 文字列」として文字列からデータを取得して表示してみます。 |
---|
#include <stdio.h> int main(void) { char *src = "10 A0 123.456 ABCDEFG"; int i; int x; float f; char s[100]; sscanf( src, "%d %x %f %s", &i, &x, &f, &s ); printf( "%d¥n", i ); printf( "%X¥n", x ); printf( "%.3f¥n", f ); printf( "%s¥n", s ); return 0; } |
10 A0 123.456 ABCDEFG |
---|
と、表示されます。 このように、文字列src に入力されていた文字列を分解して それぞれの変数に格納してあげる事が出来ます。 |