Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cのスキャンセット


Cのスキャンセットとは何ですか。スキャンセットは基本的に、scanfファミリ関数でサポートされている指定子です。 %[]で表されます。スキャンセット内では、1文字または文字セット(大文字と小文字を区別)のみを指定できます。スキャンセットが処理されるとき、scanf()はスキャンセットで言及されている文字のみを処理できます。

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[A-Z]s", str);
   printf("Given String: %s", str);
}

出力

Enter something: HElloWorld
Given String: HE

小文字で書かれた文字は無視されます。 「W」の前にも小文字が含まれているため、「W」も無視されます。

これで、スキャンセットの最初の位置に「^」がある場合、指定子はその文字が最初に出現した後、読み取りを停止します。

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[^r]s", str);
   printf("Given String: %s", str);
}

出力

Enter something: HelloWorld
Given String: HelloWo

ここで、scanf()は、文字「r」を取得した後の文字を無視します。この機能を使用すると、scanfがスペースを含む文字列を受け取らないという問題を解決できます。 %[^ \ n]を入力すると、改行文字を取得するまですべての文字が使用されます。

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[^\n]s", str);
   printf("Given String: %s", str);
}

出力

Enter something: Hello World. This line has some spaces.
Given String: Hello World. This line has some spaces.

  1. Cのscanf()およびfscanf()

    関数scanf() 関数scanf()は、C言語でstdinからフォーマットされた入力を読み取るために使用されます。それ以外の場合は、書き込まれた文字の整数を返し、負の値を返します。 これがC言語でのscanf()の構文です int scanf(const char *characters_set) これがC言語のscanf()の例です 例 #include <stdio.h> int main () {    char s[20];    printf("Enter a string : ");   &n

  2. Pythonを使用してscanf()メソッドをシミュレートする方法は?

    Pythonのドキュメントによると Pythonには現在、scanf()に相当するものはありません。正規表現は、scanf()形式の文字列よりも一般的に強力ですが、より冗長です。次の表は、scanf()形式のトークンと正規表現の間のほぼ同等のマッピングを示しています。 scanf()TokenRegular式 %c 。 %5c 。{5} %d [-+]?\ d + %e、%E、%f、%g [-+]?(\ d +(\。\ d *)?|\。\d +)([eE] [-+]?\ d +)? %i [-+]?(0 [xX] [\ dA-