C言語で文字列の長さを効率的に計算するにはどうすればいいでしょうか? 質問する

C言語で文字列の長さを効率的に計算するにはどうすればいいでしょうか? 質問する

C で文字列の長さを効率的に(時間内に)計算するにはどうすればよいでしょうか?

今、私は次のことをやっています:

int calculate_length(char *string) {
    int length = 0;
    while (string[length] != '\0') {
        length++;
    }
    return length;
}

しかし、たとえば strlen() と比べると非常に遅いのですが、他に方法はありますか?

ありがとう。

編集: 私は独立した環境で作業しており、「string.h」を含む外部ライブラリを使用することはできません。

ベストアンサー1

からFreeBSD ソースコード:

size_t
strlen(const char *str)
{
    const char *s;
    for (s = str; *s; ++s);
    return(s - str);
}

あなたのコードと比較すると、これはおそらくアセンブラ命令に非常にうまくマッピングされ、大きなパフォーマンスの違いを説明できます。

おすすめ記事