C言語では、「scanf("フォーマット制御文字列"、変数メモリアドレス)」文を使用して文字列を入力できます。 scanf() 関数の最初のパラメータはフォーマット文字列で、入力フォーマットを指定し、フォーマット指定子に従って入力の対応する位置情報を解析し、変数パラメータ リスト内の対応するポインタが指す位置に格納します。
このチュートリアルの動作環境: Windows 7 システム、C 17 バージョン、Dell G3 コンピューター。
scanf 関数の一般形式
scanf 関数は標準ライブラリ関数であり、その関数プロトタイプはヘッダー ファイル "stdio.h" にあります。 printf 関数と同様に、C 言語では、scanf 関数を使用する前に stdio.h ファイルをインクルードしないこともできます。 scanf 関数の一般的な形式は次のとおりです。
scanf(“格式控制字符串”, 地址表列);
このうち、書式制御文字列は printf 関数と同じ機能を持ちますが、非書式文字列、つまりプロンプト文字列を表示することはできません。各変数のアドレスは、アドレス テーブルの列に示されています。アドレスは、アドレス演算子「&」とその後に続く変数名で構成されます。
例: &a と &b はそれぞれ変数 a と変数 b のアドレスを表します。
このアドレスは、コンパイル システムによってメモリ内の変数 a および b に割り当てられるアドレスです。 C言語では他の言語と異なりアドレスという概念が使われます。変数値と変数アドレスという 2 つの異なる概念を区別する必要があります。変数のアドレスは C コンパイル システムによって割り当てられるため、ユーザーは特定のアドレスを気にする必要はありません。
変数のアドレスと変数値の関係
次のような代入式で変数に値を代入します。 a=567;
a は変数名、567 は変数の値、&a は変数 a のアドレスです。
しかし、代入番号の左側は変数名であり、アドレスを書くことはできません。scanf 関数は基本的に変数に値を代入しますが、変数のアドレスを書き込む必要があります。など。両者は形状が異なります。 & はアドレス取得演算子で、&a は変数のアドレスを検索する機能を持つ式です。
#include <stdio.h> int main(void){ int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c); return 0; }
この例では、scanf 関数自体はプロンプト文字列を表示できないため、最初に printf ステートメントを使用してプロンプトを画面に出力し、ユーザーに a、 b、およびc。 scanf ステートメントを実行し、ユーザーの入力を待ちます。 scanf ステートメントのフォーマット文字列では、入力間隔として「%d%d%d」の間に非フォーマット文字がありません。そのため、2 つの入力間の入力間隔として複数のスペースまたは Enter キーを使用する必要があります。数値、間隔。例:
7 8 9 または
7
8
9
推奨チュートリアル: "
以上がC言語でscanfを使って文字列を入力する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。