C言語学習メモ:C言語のプレースホルダまとめ

私が C 言語を学習していたとき、中国大学の MOOC プラットフォームで浙江大学のウェン カイ教授が教えている「C 言語プログラミング」コースを受講していましたが、ビデオ学習を追跡したところ、先生がコース内でプレースホルダーについてよく言及していることがわかりました。 。しかし、体系的かつ具体的には導入されていない。そこで、特別に集めて以下のようにまとめてみました。


意味:

定義: プレースホルダーは、C 言語開発で出力のフォーマットを担当する特殊文字です。

よく使用される書式設定の例を見てみましょう。

#include <stdio.h>
int main(){
    int amount = 0;
    int price = 0;
    
    printf("请输入金额(元):");
    scanf("%d",&price);

    printf("请输入票面(元):");
    scanf("%d",&amount);

    int change = amount - price;
    printf("找您%d元",change);


    return 0;
    
}

変更を処理するこのプログラムでは、「%d」はプレースホルダーであり、printf 関数の出力時に位置を占め、変数の特定の値の入力を待つために使用されます。

ただし、プレースホルダーには特定の形式制限があり、たとえば、先ほどのコードで「%d」が使用されているのは、変数 amount とprice が両方とも int 型であるためです。

では、さまざまな変数タイプはどのプレースホルダーに対応するのでしょうか?


C 言語のプレースホルダーの概要:

C 言語のプレースホルダーの概要
プレースホルダー プレースホルダーの特定の形式
%d、%i 整数
%f 浮動小数点数
%p ポインタ
%fL 長いログ
%e 科学的表記法
%g 10進数または科学的表記法
%a,%A 浮動小数点値の読み取り(C99 でのみ有効)
%c 文字を読む
%d 10 進整数の読み取り
%私 10 進数、8 進数、16 進数の整数を読み取ります
%o 8進整数で読み取る
%x,%X 16進数の整数で読み取る
%s スペース、タブ、または改行文字で終わる文字列を読み取ります。
%f,%F,%e,%E,%g,%G 実数を入力するために使用されます。実数は、10 進数または指数形式で入力できます。
%u 符号なし 10 進整数を読み取ります
%n これまでに読み取られた値と同等の文字列
%[] スキャンワードマッチングセット
%% % 記号を読んでください

しかし、非常に多くのプレースホルダーの使い方をまとめた後、いくつかの意味がよく理解できなかったので、いくつかのプレースホルダーを赤くマークして、具体的な使い方を調べる準備をしました。


いくつかのプレースホルダーの具体的な使用法:


1. "%c"、"%s"、および "%n" の違いの分析:

%cはC言語の文字書式文字を表します。

%s は C 言語の文字列フォーマット文字を表します。

そうは言っても、まだ言っていないので、コードに入れて詳しく見てみましょう。

#include <stdio.h>

int main()
{
    char c = 'A'; 
    printf("用占位符输出一个字符:%c\n",c);

    char s[] = "字符串";
    printf("用占位符输出一个字符串:%s\n",s);

    return 0;
    
}

出力を見てみましょう。

 大体は理解できたので、参考までに文字と文字列の違いをいくつか挙げておきます。

1. C 言語の文字は、単一の文字を表す基本データ型 (char) として定義されます。文字列は基本データ型ではありませんが、最後に '\0' で終わる char の配列で置き換えることができます。


2. 文字列は char 配列である必要がありますが、char 配列は必ずしも文字列である必要はありません。char 配列と文字列の違いは、最後に '\0' があるかどうかです。


3.Char は 32 ビット システムで 1 バイトの記憶領域を占める単一の文字であり、文字列は固定長の連続領域 (実際には配列の定義) です。

より複雑な「%n」を見てみましょう。

1.%n は他の形式記述記号とは異なります。%n は、書式設定情報を printf に渡しませんが、その時点までに入力した文字の合計数を、対応する引数が指す整数変数に入れるように printf に指示します。したがって、%n の引数は整数ポインターである必要があります。

2. printf 呼び出しが戻った後、引数 %n が指す変数には、%n が発生したときに printf 呼び出しによって出力された文字数を示す整数値が含まれます。

理解できない場合は、コードにアクセスしてください。

#include <stdio.h>

int main()
{
    int count = 0;
    
    printf("this%n is a test\n",&count);
    printf("%d",count);

    return 0;
}

このコードの出力は非常に興味深いので、見てみましょう。

情報とコードに基づいて、%n は特定のコンテンツを印刷しない特殊な形式指定子であることがわかりました。printf() は %n の前に現れる文字の数をカウントし、この値をパラメータ変数に割り当てます 。


 

2. %[] の使用法:

%[] は通常、書式制御文字の scanf 関数でのみ使用されます。例を挙げてみましょう:

文字列内の小文字のみを読み取りたい場合、scanf 関数を使用してこの問題を解決するにはどうすればよいですか?

ここでは、az のような形式制御をサポートする形式制御文字 %[] の使用を検討してください。

char s[];
scanf("%[a-z]",s);

さらに、%[] には高度な使用法が多数あります。次のリンクを参照してください。

scanf 形式の制御文字 %[] の適用については    、このブログに詳しく書かれているので、ここでは詳しく説明しません。


結論:

二度目のブログ、お付き合いください❥(^_-)

参考文献:

C 言語における %s の役割は何ですか? C 言語における %c と %s は何を意味しますか?

C言語でよく使われるプレースホルダー

C言語における文字列と文字の違い

scanf形式制御文字%[]の適用

おすすめ

転載: blog.csdn.net/antonymbaobwang/article/details/132303102