例えばですが
char array[1000]
において[0][300]まで文字がはいっているとして
[299]と[300]の'\0'の境界を見つける関数を作ろうとしました。
この関数は引数として&array[0]を受けとり、出力に
char *reserch(char buffer[/url]){ int pl=0; int pr=1000; int pc; while(1){ pc=(pl+pr)/2; if(pr-pl==1) return (&buffer[p[/url]); if(buffer[pc=='(1)']) pr=pc; else pl=pc; } }この時、一回目にbuffer[500]を読みに行くことになるのですが
(1)に何を入れたらうまくいくのでしょうか?
(この関数自体怪しいですが・・・。)
これはやはり未定義なのでしょうか?('\n'以降は何があるか分からない)
文字列の長さを求めるのにstrlen関数が用意されています。
自分は上で示したほうの関数を使ったほうがちょっとは速くなるんじゃないかと思っていたのですが
strlenがどのように辿って行っているのかよくわからないので
なんとも言えない所です。。
だいたいの実現例はひたすらインクリメントをしていたので
かなり長い文字列よりはこっちのがいいのかなぁっと^^;
よろしくお願いします。