注:以上两种方案都能够把一个字符串内的整数拆分出来,而且整数之间不限分隔符必须为‘,’,也不限两个整数之间有多少的非数字分隔符。整数的位数也不限,如果象题目中的例子那样,每个整数都是一位,而且两个整数都用一个逗号分隔,那就太简单了。
void GetValues(char* s , int array[])
{
int length = strlen(s);
for(int i = 0 ; i < strlen ; i += 2)
array[i] = s[i] - '0';
}
void f(char* s , int array[])
{
char *p = s;
int i , val , flag;
char c;
i = 0;
val = 0;
flag = 0;
while(1)
{
c = *p++;
if(c >= '0' && c <= '9')
{
flag = 1;
val *= 10;
val += c - '0';
}
else
{
if(flag)
{
array[i] = val;
i++;
val = 0;
flag = 0;
}
}