■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50
プログラマが2chを救う!?
- 620 :デフォルトの名無しさん :01/08/26 18:29 ID:goYJpq5c
-  >478-479 修正案 
 char *zz_GetString2(char *dst,char tgt)
 {
 int i, len;
 int ch = (int)'&';  int ch2 = (int)'=';
 char *kk = zz_query_string;
 char *kk0, *kk1;
 for(i=0;i<200;i++)
 {
 if(kk[0] == tgt)
 {
 kk0 = strchr(kk,ch); /* & */
 if(!kk0) kk0 = strchr(kk,(int)'\0');
 kk1 = strchr(kk,ch2); /* = */
 len = kk0 - kk1 - 1;
 if(len > 0)
 {
 if(kk0) *kk0 = '\0';
 strncpy(dst,kk1+1,20);
 dst[20-1] = '\0';
 if(kk0) *kk0 = '&';
 return dst;
 }
 }
 kk = strchr(kk,ch);
 if(!kk) break;
 kk++;
 }
 }
 機能は >94 参照。zz_GetEnv から、
 zz_GetString2(zz_bs ,'b');
 などのように呼んでください。
 
 該当部分(
 bbs=unix&key=998764722&st=23&to=34&nofirst=true&imode=true
 のような文字列を zz_query_string としての、連続7回の呼び出し)
 の100万回の処理時間は、手元の環境で
 修正前 51.3s → 修正後 6.1s 。
 
 >497-498 によれば処理時間への影響は小さいけれど、
 リンク部分の文字列を短くできます。
 
 
231KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30