😸

[C] sscanf 関数

に公開

機能

文字列の内容を指定した書式で分解し、変数に格納する[1]

使用例

123 45 の2つの数値を分解して表示する

\n は改行を表す エスケープシーケンス[2]

コード

char str[] = "123 45";
int a, b;
sscanf(str, "%d %d", &a, &b);
printf("%d %d\n", a, b);
全文
#include <stdio.h>
void main() {
    char str[] = "123 45";
    int a, b;
    sscanf(str, "%d %d", &a, &b);
    printf("%d %d\n", a, b);
}

実行結果

123 45

name=Alice,age=20 を変数から分解して表示する

コード

char str[] = "name=Alice,age=20";
char name[16];
int age;
sscanf(str, "name=%[^,],age=%d", name, &age);
printf("%s %d\n", name, age);
全文
#include <stdio.h>
void main() {
    char str[] = "name=Alice,age=20";
    char name[16];
    int age;
    sscanf(str, "name=%[^,],age=%d", name, &age);
    printf("%s %d\n", name, age);
}

実行結果

Alice 20
脚注
  1. sscanfはフォーマット(%dや%sなど)に従って文字列から値を抽出する関数。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion