我有这个字符串:
char *path = " one\\\two\\\five\\\six";

当每个单元格都是字符串时,我想将其分离为数组。
我正在使用strtok,我的问题是在计算要为数组分配多少空间。

我正在这样做:

for ( i = 0 ; i < strlen(path) ; i++)
{
   if (path[i] == '\'  && path[i+1] == '\') /*doesn't work! :( */
      counter++
}


比较器行不起作用...我也尝试编写:“ \”,但它也不起作用。
怎么了?

编辑
我正在尝试使用strtok,并且变得凌乱:(

     char           seps[]      =   "\\";
     char           *elemName   =   NULL;

 elemName = strtok( path, seps );

 while( elemName != NULL )
     {
          /* While there are tokens in "string" */
         /*copy the elemName*/
         stringArr[runner] = strdup(elemName);
         /* Get next token: */
          elemName = strtok( NULL, seps );
     }
 printf("printing the strings!!!!\n");
 for ( i = 0 ; i < arr_size ; i++)
 {
     printf (" %s \n " , stringArr[i]);
 }

最佳答案

您需要编写'\\'(或数字92,因为它是\ ASCII值)。 \是转义字符,如果要将其包含在字符串中,则需要自己对其进行转义。

说明:\(whatever)在编译阶段转换为一个字符。 (例如,\n-> char,ASCII值为0x0A)

10-08 11:04