我得到以下字符串:
"312 ,22 ,+12 , -12 , 5331"
数字之间可以有多个空格.
我需要将它转换为这样的数组:
int arr[] = {312,22,-12,12,5331};
有没有一个漂亮和优雅的方式与C89这样做?
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
int main(int argc, char const *argv[])
{
char numbers_str[] = "312 ,22 ,+12 ,-12 ,5331", *currnum;
int numbers[5], i = 0;
while ((currnum = strtok(i ? NULL : numbers_str, " ,")) != NULL)
numbers[i++] = atoi(currnum);
printf("%d\n", numbers[3]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)