我有这个字符串:
char *path = "一\\\二\\\五\\\六";
当每个单元格都是字符串时,我想将它分成一个数组。
我正在使用 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
-> ASCII 值为 0x0A 的字符)
关于c - 如何使用 : "\\" or "\"? 分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458399/