gets() と put() はヘッダー ファイル stdio.h で宣言されます。どちらの関数も文字列の入出力操作に関与します。
Cのgets()関数
gets() 関数を使用すると、ユーザーはいくつかの文字を入力してから Enter キーを押すことができます。ユーザーが入力したすべての文字は文字配列に保存されます。 Null 文字が配列に追加されて文字列になります。 gets() を使用すると、ユーザーはスペースで区切られた文字列を入力できます。ユーザーが入力した文字列を返します。
宣言
char[] gets(char[]);
gets() を使用した文字列の読み取り
#include void main () { char s[30]; printf('Enter the string? '); gets(s); printf('You entered %s',s); }
出力
Enter the string? javatpoint is the best You entered javatpoint is the best
gets() 関数は、配列境界のチェックを実行せず、新しい行 (enter) に到達するまで文字を読み取り続けるため、使用するのは危険です。バッファ オーバーフローが発生しますが、これは fgets() を使用することで回避できます。 fgets() は、最大制限を超えない文字が読み取られることを確認します。次の例を考えてみましょう。
#include void main() { char str[20]; printf('Enter the string? '); fgets(str, 20, stdin); printf('%s', str); }
出力
Enter the string? javatpoint is the best website javatpoint is the b
Cのputs()関数
put() 関数は printf() 関数と非常によく似ています。 Puts() 関数は、gets() または scanf() 関数を使用して事前に読み取られた文字列をコンソールに出力するために使用されます。 Puts() 関数は、コンソールに表示される文字数を表す整数値を返します。文字列とともに追加の改行文字を出力し、コンソール上の新しい行にカーソルを移動するため、puts() によって返される整数値は、常に文字列に存在する文字数に 1 を加えたものと等しくなります。
宣言
int puts(char[])
gets() を使用して文字列を読み取り、puts() を使用してコンソールに文字列を出力する例を見てみましょう。
#include #include int main(){ char name[50]; printf('Enter your name: '); gets(name); //reads string from user printf('Your name is: '); puts(name); //displays string return 0; }
出力:
Enter your name: Sonoo Jaiswal Your name is: Sonoo Jaiswal