我有这个字符串: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)