各文字列が固定長であるファイルの構造体から文字列を読み取っています。'\0'
パディングです。格納されている文字列が長さ全体を必要とする場合、ゼロ終了しません。あまりにも、std :: stringを最大X文字から構成し、ヌル文字で停止
// char MyString[1000];
std::string stdmystring(MyString, ARRAYSIZE(MyString));
しかし、このコピーパディング:
私は現在、このような人々のうちstd::string
Sを構築しています。私は今すぐ文字列をトリミングすることができますが、最初の場所でコピーを防止するエレガントで迅速な方法はありますか?
スピードはスペースより重要です。これはループで実行されるためです。
POSIX strnlenを使用してサイズを判断できます。 (それ以外の場合は、何かする必要があります。それ以外の場合は、文字列:: size()は常に配列サイズです) –
もちろん、最適化は間違いありません。サイズを決定するための2番目のループなしでこれを行う方法が誰もいなくなった場合は、これを使用します(これは私が考えたものです...)。 –