C言語で文字列を読み込む方法は何ですか。

C言語では、scanf関数またはgets関数を使用して文字列を読み取ることができます。

  1. scanfの日本語訳は、入力を受け付けることです。
char str[100];
scanf("%s", str);

この方法には1つ問題があります。それは、空白の前の文字列しか読み取ることができず、入力された文字列に空白が含まれている場合、空白の前の部分しか読み取れないということです。

  1. 取得します
char str[100];
gets(str);

この方法では、スペースを含む文字列を読み取ることができますが、gets関数にはセキュリティ上の問題があり、入力文字列の長さを判断できず、バッファオーバーフロー保護が提供されていません。

gets関数のセキュリティ問題を回避するために、gets関数の代わりにfgets関数を使用することをお勧めします。fgets関数では、最大文字数を指定することができます。

char str[100];
fgets(str, sizeof(str), stdin);

これによりバッファオーバーフローの問題を回避でき、同時にスペースを含む文字列を読み取ることができる。

bannerAds