C言語の標準関数を目的別に調べることができる辞典

ホーム > C 標準関数逆引き辞典 > 文字列 > 文字列から文字や数値を取り出す

C 標準関数逆引き辞典

:: reverse dictionary ::

文字列

※ソースファイルについて


文字列から文字や数値を取り出す

文字列から文字や数値を取り出すには、sscanf 関数を使います。

≪宣言≫

#include <stdio.h>
char data[] = "プログラム 123 C 4.56";

char str[32];
int num;
char ch;
float flt;

sscanf(data, "%s %d %c %f", str, &num, &ch, &flt);

ソースファイル

str"プログラム"num123ch'C'flt4.56 になります。


ワイド文字列の場合は swscanf 関数を使います。

≪宣言≫

#include <locale.h>
#include <stdio.h>
wchar_t data[] = L"プログラム 123 C 4.56";

wchar_t str[32];
int num;
wchar_t ch;
float flt;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

swscanf(data, L"%s %d %c %f", str, &num, &ch, &flt);

ソースファイル

str"プログラム"num123ch'C'flt4.56 になります。

▼ 関数

int sscanf(const char *s, const char *f, v1, v2, ..., vn)
int swscanf(const wchar_t *s, const wchar_t *f, v1, v2, ..., vn)

書式 f に従って文字列 s から文字や数値を取り出し、v1vn の変数に格納します。 v1vn には、対応する型の変数へのポインタを指定します。

書式 f の中に指定する %s%d などのパラメータが、取り出される値になります。 パラメータは、左から順に v1vn の変数に対応します。

%s%d などの主なパラメータは、次のとおりです。

パラメータ 対応する値
%c 文字
%s 文字列
%d 10進数
%f 小数点数(float
%e 浮動小数点数(float

なお、値の区切りは、半角スペース、タブ、改行などの空白文字です。
連続した空白文字は、一つの区切りになります。

●引数

s … 文字列
f … 書式
v1 〜 vn … 入力された値を格納する変数のポインタ

●戻り値

・取り出し成功 …取り出した値を格納した変数の個数
・取り出し失敗 … EOF
・取り出す値がない … EOF

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

文字列 - string -


ホーム > C 標準関数逆引き辞典 > 文字列 > 文字列から文字や数値を取り出す

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com