首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-11 
C语言 如何将一个字符串中的数据 以逗号为标示 分别存到另一个数组中??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;  /* 切换到下一个字符 */  }} 

热点排行