C语言 怎么将一个字符串中的数据 以逗号为标示 分别存到另一个数组中?
C语言 如何将一个字符串中的数据 以逗号为标示 分别存到另一个数组中??
C 如何将一个字符串中的以逗号为标示 分别存到另一个数组中??求助。。char list = "adfafa,sdfafaf,sdfsdfaf,sdfafaf,sdffafs" 存到char list 【】并计算NUM 数
------解决方案--------------------
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; /* 切换到下一个字符 */ } }