#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#define StrSZE 81
void custatoi(char* tokenArray[], int* data, int numOfTok);
int main(void)
{
char str[StrSZE];
char** tokenArray;
int numOfToken = 0, i;
int* data;
//strInput(str, maxChars);
tokenArray
= malloc(sizeof(char*));
tokenArray
[numOfToken
] = strtok(str
, " \t"); while (tokenArray[numOfToken] != NULL)
{
printf("token: %s\n", tokenArray
[numOfToken
]); numOfToken++;
tokenArray
= realloc(tokenArray
, sizeof(char*) * (numOfToken
+ 1)); tokenArray
[numOfToken
] = strtok(NULL
, " \t"); }
data
= malloc(numOfToken
* sizeof(int));
custatoi(tokenArray, data, numOfToken);
for (i = 0; i < numOfToken; i++)
printf("data[%d]=%d\n", i
, data
[i
]);
return 0;
}
void custatoi(char* tokenArray[], int* data, int numOfTok)
{
int i;
for (i=0; i < numOfTok; i++)
data
[i
] = atoi(tokenArray
[i
]);}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgU3RyU1pFIDgxCgp2b2lkIGN1c3RhdG9pKGNoYXIqIHRva2VuQXJyYXlbXSwgaW50KiBkYXRhLCBpbnQgbnVtT2ZUb2spOwoKaW50IG1haW4odm9pZCkKewogICAgY2hhciBzdHJbU3RyU1pFXTsKICAgIGNoYXIqKiB0b2tlbkFycmF5OwogICAgaW50IG51bU9mVG9rZW4gPSAwLCBpOwogICAgaW50KiBkYXRhOwoKICAgIC8vc3RySW5wdXQoc3RyLCBtYXhDaGFycyk7CiAgICBzdHJjcHkoc3RyLCAiMSAzNDUgNDQgMjMiKTsKCiAgICB0b2tlbkFycmF5ID0gbWFsbG9jKHNpemVvZihjaGFyKikpOwoKICAgIHRva2VuQXJyYXlbbnVtT2ZUb2tlbl0gPSBzdHJ0b2soc3RyLCAiIFx0Iik7CiAgICB3aGlsZSAodG9rZW5BcnJheVtudW1PZlRva2VuXSAhPSBOVUxMKQogICAgewogICAgICAgIHByaW50ZigidG9rZW46ICVzXG4iLCB0b2tlbkFycmF5W251bU9mVG9rZW5dKTsKICAgICAgICBudW1PZlRva2VuKys7CiAgICAgICAgdG9rZW5BcnJheSA9IHJlYWxsb2ModG9rZW5BcnJheSwgc2l6ZW9mKGNoYXIqKSAqIChudW1PZlRva2VuICsgMSkpOwogICAgICAgIHRva2VuQXJyYXlbbnVtT2ZUb2tlbl0gPSBzdHJ0b2soTlVMTCwgIiBcdCIpOwogICAgfQoKICAgIGRhdGEgPSBtYWxsb2MobnVtT2ZUb2tlbiAqIHNpemVvZihpbnQpKTsKCiAgICBjdXN0YXRvaSh0b2tlbkFycmF5LCBkYXRhLCBudW1PZlRva2VuKTsKCiAgICBmb3IgKGkgPSAwOyBpIDwgbnVtT2ZUb2tlbjsgaSsrKQogICAgICBwcmludGYoImRhdGFbJWRdPSVkXG4iLCBpLCBkYXRhW2ldKTsKCiAgICByZXR1cm4gMDsKfQoKdm9pZCBjdXN0YXRvaShjaGFyKiB0b2tlbkFycmF5W10sIGludCogZGF0YSwgaW50IG51bU9mVG9rKQp7CiAgICBpbnQgaTsKCiAgICBmb3IgKGk9MDsgaSA8IG51bU9mVG9rOyBpKyspCiAgICAgICAgZGF0YVtpXSA9IGF0b2kodG9rZW5BcnJheVtpXSk7Cn0K