ファイルから文字列を読み込むためにfgetcを使用しています。文字列がどれくらいの長さでデータを保持する配列のスペースを再割り当てする必要があるかはわかりません。そのために、私は現在の配列がいっぱいであることを知る必要があります。文字列を読み込んだ後にchar配列がnullで終わるかどうかはよくわかりません。例えば、私はサイズ8の配列を持っていて、fgetcは9番目のcharを与えるつもりです。配列のサイズは現在8または9ですか? (8文字+ \ 0または8文字のみ)。それをテストする方法はありますか? \ 0がない場合。文字列を読み終えたら、それをchar配列に追加する必要がありますか?Stringがnullで終了するかどうかを知る方法
3
A
答えて
0
fgetcは文字列のサイズを取得するために1回の呼び出しで1文字を読み込むので、読み込み文字を\ 0またはEOFにする必要があります。 \ 0バイトが表示されている場合は、\ 0を含むすべてのバイトをコピーする必要があります。 \ 0でなくEOFに達し、文字カウンタが0より大きい場合は、自分自身に\ 0を追加する必要があります。
2
バッファの現在のサイズと文字を追加する位置の両方を把握する必要があります。位置がサイズと等しい場合は、バッファを増やす必要があります。末尾の\0
文字に対応するには、実際のサイズは+1
である必要があります。この文字は、最後に読み取った文字の後に常に追加する必要があります。
1
文字列をバイト単位で保持するメモリを構築しているので、終端文字 '\ 0'の余分なバイトが必要なため、メモリ割り当てを合計文字列長+1にする必要があります。
"string"で機能する関数は、実際には '\ 0'で終わるバイトのコレクションを見ています。たとえば、 "Hello World"は "H"、 "I"、 "O"、 "W"、 "d"それは関数が文字列の処理をいつ停止するかを知る方法です。
関連する問題
- 1. スレッドがJavaで終了したかどうかを知る方法?
- 2. SQL Serverでどのセッションが終了したかを知る方法
- 3. 小数点が終了するかどうかはどのように知ることができますか?
- 4. どのブロックガードが終了するかを知るには?
- 5. css3アニメーションの終了を知る方法
- 6. FTPの終了メッセージを知る方法
- 7. C#でプログラムが終了したかどうかを確認する方法
- 8. ExecutorServiceが正常終了したかどうかを知る方法はありますか?
- 9. Observableが終了しているかどうかを確認する方法?
- 10. UIImagePickerControllerの "iris"開始アニメーションが終了しているかどうかを知る方法は?
- 11. オブジェクトがJavaでStringかString Arrayかどうかをチェックする方法は?
- 12. すべての$ httpコールが終了したかどうかを知る方法 - AngularJS
- 13. すべてのAsyncTaskが終了したかどうかをチェックする方法?
- 14. boost :: processプロセスが "正常に終了したか"終了したかを知る方法?
- 15. WCFクライアントチャネル(サービス)が終了したかどうかを確認する方法?
- 16. VB6プロセスIDが終了したかどうかをチェックする方法
- 17. NSURLConnectionのsendSynchronousRequest:returningResponse:エラーが終了したかどうかを検出する方法:
- 18. AS3 - 動画が終了したかどうかを確認する方法
- 19. appiumドライバが終了したかどうかを確認する方法
- 20. asp.net sql serverストアドプロシージャが終了したかどうかを確認する方法
- 21. ViewModelでアニメーションが終了したときを知る方法?
- 22. アプリケーションがどの画面から終了するかを知るために上書きする方法
- 23. Swift 3.0のSpotify SDK:曲がいつ終了するかを知る方法
- 24. 共有要素の移行がいつ終了するかを知る方法
- 25. アプリケーションがいつ終了するかを知る方法.Net Compact Framework?
- 26. ラーベリがクッキーを終了するかどうか確認する
- 27. HashMap <String、String>から "Null"値をフィルタリングする方法は?
- 28. jquery.jmslideshow.js終了するにはどうすれば終了するのですか
- 29. どのアクティビティが終了したかチェックする方法
- 30. ストリームが終了したことを知る方法C#
すべての標準文字列関数は、そこにあるNULL文字に依存します。したがって、それを追加する必要があります。そうでないと、奇妙な問題で実行することになります – RageZ