したがって、文字列を文字の配列に取得したいのですが、文字を取得する前に配列の長さを定義する必要がありますが、ユーザーが入力する文字列に依存するため、長さがどうなるかわかりません。方法はありますか?私はC99標準でプログラミングしています。
1 に答える
2
ほとんどの人は、予想される最大の入力 (または をはるかに超える) を処理するのに十分な大きさの配列を作成するだけで、これを解決します。
しかし、取得しようとしている文字数を知る方法がなく、それを処理したい状況では、メモリ割り当てを通じて動的にメモリを増やす必要があります (ある種のログベースの成長を使用して)。つまり、100 文字を割り当てます。さらに追加しようとすると、動的に 200 文字を割り当て、既存のものをコピーしてから、新しいものを追加します。次に、200 に達したら、再度 400 に割り当て、コピーして追加します。(実際の数字はただ作ったものです)
于 2012-11-09T01:10:35.260 に答える