C99 標準では、次の動作が定義されていますか?
puts(s);// s != NULL but *s==""
Linux のマンページでこれを調べましたが、何も役に立ちませんでした。誰かが明確にしてもらえますか?
C99 標準では、次の動作が定義されていますか?
puts(s);// s != NULL but *s==""
Linux のマンページでこれを調べましたが、何も役に立ちませんでした。誰かが明確にしてもらえますか?
これはC99が言っていることputs
です:
7.19.7.10
puts
関数あらすじ
#include <stdio.h> int puts(const char *s);
説明
puts 関数は、 が指す文字列を が指す
s
ストリームに書き込みstdout
、出力に改行文字を追加します。終端のヌル文字は書き込まれません。戻り値
書き込みエラーが発生した場合、 puts 関数は EOF を返します。それ以外の場合は、負でない値を返します。
s != NULL
またはについての言及はありません*s==""
。言うまでもありません*s==""
が、おそらく意味がありません*s == '\0'
。
C の puts() に空の文字列を渡すとどうなりますか?
標準が言うように:
puts 関数は文字列 ... を書き込み、改行文字を出力に追加します。
したがって、最初に空の文字列が出力されます。つまり、何も出力されず、次に改行が出力されます。カーソルを効果的に次の行に移動します。