scanf関数の文字列の代入方法は?
C言語では、scanf関数を使用することで標準入力から文字列を読み込み、指定された変数に代入できます。
例えば、標準入力から文字列を読み込んでstr変数に代入する場合は、次のコードを使用できます。
char str[100]; // 声明一个字符串变量
printf("请输入一个字符串: ");
scanf("%s", str); // 读取字符串并赋值给str变量
printf("输入的字符串是: %s\n", str); // 打印输入的字符串
このコードは、まず入力の文字列格納用のstrという文字配列の宣言を行います。次に、scanf(“%s”, str)を使って標準入力から文字列を読み取り、str変数に代入します。なお、%sは文字列読み取り用の書式文字列です。
scanf関数はスペース、タブ、改行で区切った入力を読み込みます。入力文字列にスペースを含む場合、スペースより前の部分しか文字列として読み込まれません。スペースを含む完全な文字列を読み込む場合はfgets関数を使用します。
scanf関数の 文字列読み込み時にバッファオーバーフローが発生する問題は、読み込み文字数の制限で回避できる。例えば %99sを使用すれば、読み込み文字の上限を99文字と決められる。こうすると、入力される文字列が、宛先変数のサイズを超過することが防げる。