Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2725631
  • 博文数量: 416
  • 博客积分: 10220
  • 博客等级: 上将
  • 技术积分: 4193
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 09:47
文章分类

全部博文(416)

文章存档

2022年(1)

2021年(1)

2020年(1)

2019年(5)

2018年(7)

2017年(6)

2016年(7)

2015年(11)

2014年(1)

2012年(5)

2011年(7)

2010年(35)

2009年(64)

2008年(48)

2007年(177)

2006年(40)

我的朋友

分类: C/C++

2010-10-13 10:16:55

  C语言中经典的拆分字符串一般用strtok, 相信多数人一直用它。下面样例是用sscanf拆分字符串,以供大家参考:

char *param = "FontName=Arial,FontSize=32,PrimaryColour=0x00FFFFFF,MarginL=10,Underline=1,color=&H00000000";
 
while(sscanf(param, "%[^=]=%[^,],%s", skey, sval, snext))
  {
      printf("key = %s, val=%s, next=%s\n",  skey, sval, snext);
      if (strncmp(skey, snext, strlen(skey)) )
      {
          param = snext;
      }
      else
          break;
  }

下面样例是从C++ Libaray Reference中copy,以作比较,体会它们的差异。
若对sscanf的用法熟悉,可对不同的应用作许多相应的变化。
/* strtok example */
#include
#include

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str); pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}


本程序没有经过大量测试应用过,仅作参考用,有问题可联系:
阅读(2774) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~