问题标签 [strsep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
270 浏览

c - strsep 在这里如何工作?为什么?

我正在尝试学习用 C 编写服务器,但遇到了一些让我非常困惑的事情。我一直在尝试理解一些代码(不是我的)。我了解其中的大部分内容...除了此parse功能中的一个关键元素。

具体来说,如何strsep()在下面的代码中工作?

我认为这会strsep()找到一个点(令牌?),在该点中停止在一个字符串中,然后切断结尾,将剩余部分存储在一个新变量中。例如在请求行中查找methodmethod = strsep(copyofLine, " ");

这对我来说很有意义。

但是我不明白它是如何工作的:

//put request-target in abs_path abs_path = strsep(copyofLine, "]" + 1);

为什么会有]一个 HTTP 请求行?

还有这里:

HTTP_version = strsep(copyofLine, "\\");

为什么会有反斜杠?请解释。

下面是完整的功能。谢谢你。

0 投票
1 回答
376 浏览

c - 在 C 中将字符串解析为标记 - 出了什么问题?

我正在尝试将字符串拆分为标记以创建参数参数数组。我当前的实现如下(path是正在读取可选参数的用户可执行文件的路径):

令我困惑的是,根据我的理解,strsep这应该按预期工作,并且在一定程度上,在测试时它准确地分配为tokens[0]be path,并且直到第一个空白字符为止。tokens[1]tokens_s

但是,当您在空格后输入另一个参数时,这不会分配到tokens[2],以此类推用于后续参数。

我似乎无法发现在使用它时我做错了什么strsep并没有导致所需的功能?

输入: exe = "/usr/bin/ps" args = "-e -l"

输出: exec ps -e

0 投票
0 回答
57 浏览

c - strsep 废弃 strtok 的含义和使用指南是什么?

strtok描述下第一行中状态的(BSD)手册页

此接口已被淘汰strsep(3)

这是否意味着strtok总体上不应该使用?它没有提供任何关于strtok' 已过时的使用指南。在strsep的手册页上,它在历史记录下声明

strsep()功能旨在作为该功能的替代品strtok()。虽然strtok()出于可移植性的原因应该首选该函数(它符合 ISO/IEC 9899:1990 (``ISO C90'')),但它无法处理空字段,即检测由两个相邻分隔符分隔的字段,或者一次用于多个字符串。

所以,我的问题是

  1. 整体应该strsep用完了strtok吗?
  2. strsep1994 年 6 月的 BSD4.4 中出现了多少可移植性问题?
  3. 所有符合 POSIX 的机器都有strsep吗?
0 投票
1 回答
1742 浏览

c - 使用 C 将 CSV 文件解析为结构

我正在尝试解析 CSV 文件并将值放入结构中,但是当我退出循环时,我只返回文件的值。我不能使用 strtok,因为 csv 文件中的某些值是空的,它们会被跳过。我的解决方案是 strsep,当我在第一个 while 循环中时,我可以打印所有歌曲,但是当我离开它时,它只会返回文件的最后一个值。

有人可以告诉我为什么会发生这种情况以及如何解决吗?

0 投票
0 回答
250 浏览

c - 特殊情况下 csv 的最佳 strsep(null,",") 方法

我正在使用 strsep 解析来自 stdin 的 csv 示例输入

颜色,Andrew Adamson,284,150,80,82,Kiran Shah,1000,291709845,冒险|家庭|奇幻,Jim Broadbent,”纳尼亚传奇:狮子、女巫和魔衣橱”,286506,1317,Shane Rangi, 5、捉迷藏|狮子|魔法|教授|雪,http://www.imdb.com/title/tt0363771/?ref_=fn_tt_tt_

现在,一旦我开始使用 strsep(null,",") 进行解析

处理特殊情况的最佳方法是什么它只会在电影名称中发生,但并非所有名称都以“在它们之前有些只是普通的 CSV 任何帮助或指导会很棒我也不知道如何处理可能有逗号的大量数字?

0 投票
2 回答
368 浏览

c - getline() / strsep() 组合导致分段错误

运行下面的代码时出现分段错误。

它基本上应该读取一个.csv超过 3M 行的文件,然后再做其他事情(与问题无关),但在 207746 次迭代之后,它会返回一个分段错误。如果我删除p = strsep(&line,"|");并只打印整个line它将打印> 3M行。

我想这与内存分配有关,但无法弄清楚如何解决它。

0 投票
1 回答
249 浏览

c - Strsep,进一步解析 CSV 输入

使用 strsep 拆分包含一堆无用垃圾的 CSV ("," Delim)。其中一个条目的两边都有引号(即Florida,"Bob",1999),我想在将它们保存到我的数组之前将它们拉出来。

如何从名称中删除引号?谢谢!

0 投票
1 回答
1229 浏览

c - 在 c 中使用 strsep 函数需要帮助

我在理解 strsep 的工作原理时遇到了一些麻烦。我已经查找了它的教程,但是当我尝试不同的方法时,它总是无法编译。如果有人帮助我理解,将不胜感激语法和它的工作方式。谢谢你。

**编辑:“缓冲区”包含“我,曾经,在,在,在,学校”

****EDIT x2:我正在尝试解析一个csv文件,并以我在桌面上创建的基本“缓冲区”为例。我想用相应的逗号分隔不同的单词。

0 投票
0 回答
82 浏览

c - 如何将令牌指向的字符串值传递给C中的数组?

我正在尝试将 .csv 文件中的元素放入二维数组。这是我到目前为止写的代码。

我如何可以毫无问题地打印数据但不能将它们存储在数组中?

顺便说一句,我得到了上面代码的段错误。我认为这可能是因为这条线

1)我对变量的定义做错了吗?

2)将指针存储在数组中的意义何在?显然我也做错了,但这如何帮助我将字符串保存在数据中?

3)是否可以将单词作为字符串传递给二维数组?

我会很感激一些帮助。谢谢。

0 投票
2 回答
510 浏览

c - 来自`strsep`的字符串标记不打印(段错误)

我正在使用一小段代码来测试更大(初学者)程序的功能,但是在显示我从字符串中提取的令牌时遇到问题。

我发现并使用了:

这很好用,一次将令牌打印为字符串。

然后,当我尝试移动到用户输入的字符串时:

我在线路上遇到了段错误printf("%s\n",found);。我掌握了指针、数组和字符串的基础知识,但显然我遗漏了一些东西,希望有人能告诉我它是什么!

另外 - 如果我将printf("%s\n",found);eg 的参数更改为printf("%i\n",found);我会返回一些随机性,但总是正确的数量,例如如果我输入1/2/3我会得到三行垃圾,输入1111/2222会给出两行。我尝试了 %c, %i, %d, %p 并且他们都做同样的事情,但是 %s 段错误。

我完全被难住了。