C言語の文字列関数puts()とgets()

記事ディレクトリ

プット()

標準ライブラリ <stdio.h> に属します

関数プロトタイプ:

int put(const char *str)

str - 書き込まれる C 文字列です。

この関数は、成功した場合は文字列の長さ (末尾の \0 を含む) を示す負でない値を返し、エラーが発生した場合は EOF を返します。

機能: Puts() 関数は文字列のみを表示し、NULL 文字までの文字列を標準出力 stdout に書き込みます (NULL 文字は含まれません)。行の末尾には自動的に改行が追加されます。

put() 関数に文字のアドレスを与えると、null 文字に遭遇するまで文字を逆方向に出力し、null 文字は出力せず、自動的に改行文字を追加します。

プログラム例:

#include<stdio.h>

int main(void)
{
    
    
	char str1[] = "hello";
	puts(str1);
	puts(str1);

	return 0;
}

結果:

hello
hello

行が自動的に変更されることがわかります。

取得()

標準ライブラリ <stdio.h> に属します

関数プロトタイプ:

char *gets(char *str);

パラメータは 1 つだけです。パラメーターの型は char* です。つまり、str には文字ポインター変数名または文字配列名を指定できます。

gets() 関数の機能は、入力バッファから文字列を読み取り、それを文字ポインタ変数 str が指すメモリ空間に格納することです。

gets() 関数は、改行文字が見つかるまで入力行全体を読み取り、改行文字を破棄して残りの文字を格納し、これらの文字の末尾に null 文字を追加して C 文字列にします。

gets() は、puts() と組み合わせて使用​​されることが多く、puts() は文字列の表示に使用され、自動的に改行が追加されます。

プログラム例:

#include<stdio.h>

int main(void)
{
    
    
	char ch[20] = {
    
     '\0' };
	printf("请输入字符串:");
	gets(ch);
	puts(ch);

	return 0;
}

結果:

请输入字符串:i love you!
i love you!

gets() 関数の危険な場所: パラメータは 1 つだけ、つまり、読み込んだ文字列をメモリ内に配置する場所だけであり、この場所に読み込んだ多くのコンテンツを保持できるかどうかは不明です。

おすすめ

転載: blog.csdn.net/chengkai730/article/details/132393373