次のようなprintf
使用する場合:Cで文字バッファに格納するためにctimeを実装するにはどうすればよいですか?
printf("Time as a basic string = %s", ctime(&seconds));
を出力は次のようになります。
Wed, 28 Oct 2009 11:35:37
私はそのようctime
が生成する。この出力を保存するにはどうすればよい:
char result[80] = ctime(&seconds);
ちょうどうまくいかないようです。
最善の方法は、パラメータの長さと共に配列を渡すことです(渡されると配列の最初の要素へのポインタに調整され、サイズ情報が失われるため)。この関数は、提供されたバッファに書き込むことができます。試したやり方での配列の割り当ては、一般的にCでは不可能です(strcpy()が必要です)。 –
既存の 'ctime()'を(同等のものを実装するのではなく)*使用したい場合は、後でctimeをもっと呼び出すと、strcpyが本当に答えになります。呼び出しが1つだけの場合は、ポインタ変数に返されたポインタを格納します。 'char * T0 = ctime(&seconds);'が実行します。 'ctime()'には独自のメモリがあり、それは遠ざかりません。 –
'char result [80]; strcpy(結果、ctime(&秒)); '? –