C语言 怎么将一个字符串中的数据 以逗号为标示 分别存到另一个数组中?

C语言 如何将一个字符串中的数据 以逗号为标示 分别存到另一个数组中??
C 如何将一个字符串中的以逗号为标示 分别存到另一个数组中??求助。。char list = "adfafa,sdfafaf,sdfsdfaf,sdfafaf,sdffafs" 存到char list 【】并计算NUM 数

------解决方案--------------------
C/C++ code

#include <stdio.h>
#include <string>

int main() 
{
    char list[] = "adfafa,sdfafaf,sdfsdfaf,sdfafaf,sdffafs";
    char list2[100]={0};
    char rule[] = ",";
    char *token;
    int tmplen=0;
    int offset=0;
    token = strtok(list, rule);
     while (token!=NULL) 
     {
        tmplen=strlen(token);
        memcpy(list2+offset,token,tmplen);
        offset+=tmplen;
        token = strtok(NULL, rule); 
    }
    printf("%s",list2);
    return 0;
}

------解决方案--------------------
之前写的源码有几处小问题,现在改一下:

C/C++ code

int i,j = 0,k=0; /* 声明几个整形变量,下面要用到 */
char str[] = "adfafa,sdfafaf,sdfsdfaf,sdfafaf,sdffafs";/* 这个是你要分离的字符串 */
char list[100][100]; /* 这个是用于存储分离后的各个字符串,二维数组,最多分离出100个字符串,每个字符串的元素最多100个 */
for(i=0;i<strlen(str);++i){/* for循环,从0开始,每次循环后,i自增,循环条件是i必须小于str的长度,否则退出循环 */
  
  if(str[i] == ',') { /* 如果str中的第i个字符为逗号 */
    list[j][k] = 0; /* 分离出的第j个字符串中的第k个字符为0,也就是字符串的结束符 */
    ++j;    /* j自增,这就是表示下一个被分离出的字符串的序号 */
    k = 0;  /* 因为要将字符写到下个被分离出的字符串中,所以要从0开始 */
  }
  else{ /* 否则,不是逗号 */
    list[j][k] = str[i];  /* 二维数组list中的第j个字符串的第k个字符是符串str中的第i个字符 */
    ++k;  /* 切换到下一个字符 */
  }
}