C で文字列の長さを効率的に(時間内に)計算するにはどうすればよいでしょうか?
今、私は次のことをやっています:
int calculate_length(char *string) {
int length = 0;
while (string[length] != '\0') {
length++;
}
return length;
}
しかし、たとえば strlen() と比べると非常に遅いのですが、他に方法はありますか?
ありがとう。
編集: 私は独立した環境で作業しており、「string.h」を含む外部ライブラリを使用することはできません。
ベストアンサー1
size_t
strlen(const char *str)
{
const char *s;
for (s = str; *s; ++s);
return(s - str);
}
あなたのコードと比較すると、これはおそらくアセンブラ命令に非常にうまくマッピングされ、大きなパフォーマンスの違いを説明できます。