所以我对为什么内置返回 0 感到困惑。从手册中它说,如果无法进行转换strtol
,它将返回 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;
}
这将返回硬币面额的长整数,以及有多少硬币然后存储在硬币类型的结构中。其中有以下内容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;
};
读入的文件格式如下。 第一列是面额,第二列是计数。
1000,3
500,4
200,20
100,30
50,5
20,3
10,40
5,20
分隔符是逗号。我们特别告知要使用 strtol,否则我会使用strtok_r
.