SELECTで複数選択にした場合、CGIパラメータを取得するには?(C言語)

[上に] [前に] [次に]
ブチコ 2000/01/26(水) 21:01:28
SELECTを複数選択可にすると、sl=01&sl=02&sl=04&sl=06・・・
のように同じ名前が並んでしまいます。

これをCGIパラメータとして配列に入れるにはどういう風にすれば
良いのでしょうか?
過去ログはPerlばかりでC言語での回答がなく、意味不明でした。
・・・スミマセン、Perlは分かりません。
よろしくお願いします。m(_ _)m

ラウォッチ 2000/01/27(木) 13:33:13
ようは、文字列を切り出して、配列にいれるだけですね。
以下の感じで。
尚、配列の数はオーバーフローしない値にして下さい。

#include <stdio.h>
main(){
static char wkbuf[] ="sl=01&sl=02&sl=04&sl=06";
char  datatbl[20][80]; /* 配列データ */
char *p;
int   i, j;

       p = wkbuf - 1;
       for(j = 0;;j++){
            if((p = strstr(p+1, "sl=")) == NULL){
                 break;
            }
            for(i=0; ; i++){
                if((*(p+3+i) == '&') || (*(p+3+i) == NULL)){
                     break;
                }
                datatbl[j][i] = *(p+3+i);
            }
            datatbl[j][i] = NULL;
       }
       printf("datatbl=%s\n",datatbl);
       printf("datatbl1=%s\n",&datatbl[1][0]);
       printf("datatbl2=%s\n",&datatbl[2][0]);
       printf("datatbl3=%s\n",&datatbl[3][0]);
}

[上に] [前に] [次に]