c - 如何使用 : "\\" or "\"? 分割字符串

标签 c string

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

相关文章:

javascript - HTML 标签的 RegExp.test

php - 如果在 PHP 字符串中间使用 'period' 字符 (.) 是什么意思?

c++ - 我可以将 zlib 的 z_stream 重复用于多个操作吗?

c++ - *p++ += 2 定义明确吗?

java - 如何将文本设置为禁用的 JTextArea

javascript - 在 JavaScript 中使用++ 时的奇怪行为

string - 查找字符串中某个字符的最后一个索引

c - 使用循环将字符添加到 c 中的 "strings"数组时遇到问题?

c - 如何修复 ' Alrady print all array element of last row elements'

c - 数组在c中如何工作?