アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のような構造体があります。

構造体名 tai
id taiju
1 50
2 55
3 60
4 65

例えば、「3」と入力された時に
tai[i].idの3を検索して
tai[i].taijuの60を取得するような
関数ってありませんか?

A 回答 (3件)

強いて言うならbsearch 関数かな


keyでソートされている必要があります。
例:
#include <stdio.h>
#include <stdlib.h>

typedef struct s_tai {
int id;
int taiju;
} S_TAI;

S_TAI tai[]={
{ 1, 50},
{ 2, 55},
{ 3, 60},
{ 4, 65},
};

int cmp(const void *x, const void *y){
S_TAI *a=(S_TAI*)x, *b=(S_TAI*)y;
return a->id - b->id;
}

void main(void){
int key=3;
S_TAI *taip;
size_t size = sizeof(tai)/sizeof(S_TAI);

taip=(S_TAI*)bsearch(&key, tai, sizeof(S_TAI), size, cmp);

printf("key=%d,value=%d\n", key, taip->taiju);
}
    • good
    • 0
この回答へのお礼

有り難うございました。

お礼日時:2006/09/14 09:43

C++とSTLを駆使すればできないこともないですが、C言語標準ではできないので、自作する必要があります。

    • good
    • 0
この回答へのお礼

有り難うございました。

お礼日時:2006/09/14 09:44

そんな特定用途に特化した関数はありません。


自作してください。
    • good
    • 0
この回答へのお礼

有り難うございました。

お礼日時:2006/09/14 09:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!