-2

コード内の文字列表現をインデックス1(0ではなく)で開始したいのですが。私が1のインデックスから作業している論文。元の説明と一貫性を保ちたいと思います。

現時点では、スペース文字を追加して文字列を初期化しています。

the_string = ' ' + string;

ただし、これはthe_string.length()、文字列の「実際の」長さと矛盾していることを意味します。

どの代替回避策(独自の文字列インデックス関数を記述し、mystringクラスを作成し、[]演算子をオーバーロードするなど)が最小のコードを生成し、それは何ですか?

4

1 に答える 1

2

短くて悪い解決策は、マクロ展開を使用してインデックスを-1にすることです。

#define I(x) ((x) - 1)

the_string[I(1)] // This will access the first character of the string.

ソリューションを紙とコードに合わせたい場合はこれで問題ありませんが、そのコードを本番システムに入れないでください。

于 2012-07-24T15:31:44.333 に答える