0

そのため、組み込みstrtolが0を返す理由について混乱しています。マニュアルから、変換が不可能な場合は0を返すと書かれています。あまりにも私ですが、適切に変換する必要があります。これが関数です。

struct coin * addCoins(char *val){
    char *ptr =NULL;
    long int denomination = strtol(val, &ptr,10);
    long int count = strtol( &ptr,NULL, 10);
        printf("%d",count);
    struct coin *k;
    k = malloc(sizeof(struct coin));
    k->denom = denomination;
    k->count = count;
    return k;
}

これは、コインの金種とコインの数を表す long 整数を返します。これらは、coin 型の構造体に格納されます。次のものがありますtypedef

/* Each coin in the coins array will have a denomination (20 cents, 
 * 50 cents, etc) and a count - how many of that coin do we have on hand
 */
struct coin
{
    enum denomination denom;
    unsigned count;
};

読み込まれるファイルの形式は次のとおりです。 最初の列は金種で、2 番目の列はカウントです。

1000,3
500,4
200,20
100,30
50,5
20,3
10,40
5,20

区切り文字はコンマです。特に strtol を使用するように指示された場合は、それ以外の場合は を使用しますstrtok_r

4

2 に答える 2