c语言中字符串分割问题,在线急等。。。。

来源:百度知道 编辑:UC知道 时间:2024/05/07 02:53:21
现有字符串"clamscan c:\Documents and Settings d:\test",要把它分成
串1:"clamscan" 串2"c:\Documents and Settings" 串3"d:\test"
当然,是不能数字符串个数截取的,因为c:\Documents and Settings或d:\test是任意的路径。
现在我已经写好了一个函数,能按空格分割,可是那样的话c:\Documents and Settings 就分成了c:\Documents 和and 和 Settings三部分,求各位仗义大侠相救。。。

谢谢Helicopter的关注,情况是这样的
c:\Documents and Settings clamscan d:\test 这种情况是不会存在的,现在主要是解决后边路径的分割问题,当然后边的路径不一定是两个,可以没有,也可以是多个

要达到这样的效果,用sscanf看来是搞不定了,只能自己写函数。

下面的函数看是否满足需求,你可以在全局变量str[]里加任意多的路径,但有一点注意的是,字符\在串里必须转义为\\,路径长度不超过128位即可。

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

char str[] = "clamscan c:\\Documents and Settings d:\\test e:\\a and b f:\\c and d";

void main()

{

 int i = 0, j = 0;

 char (*pStr)[128] = NULL;

 char *s = str;

 char *ss = NULL;

 while (1)

 {

  pStr = (char (*)[128])realloc(pStr, (i+1)*(128));

  memset(*(pStr+i), 0, 128);

  ss = strchr(s, ':');

  if (i == 0)

  {

   if (ss == NULL)

&nbs