问题标签 [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.
c - strsep 在这里如何工作?为什么?
我正在尝试学习用 C 编写服务器,但遇到了一些让我非常困惑的事情。我一直在尝试理解一些代码(不是我的)。我了解其中的大部分内容...除了此parse
功能中的一个关键元素。
具体来说,如何strsep()
在下面的代码中工作?
我认为这会strsep()
找到一个点(令牌?),在该点中停止在一个字符串中,然后切断结尾,将剩余部分存储在一个新变量中。例如在请求行中查找method
:method = strsep(copyofLine, " ");
这对我来说很有意义。
但是我不明白它是如何工作的:
//put request-target in abs_path
abs_path = strsep(copyofLine, "]" + 1);
为什么会有]
一个 HTTP 请求行?
还有这里:
HTTP_version = strsep(copyofLine, "\\");
为什么会有反斜杠?请解释。
下面是完整的功能。谢谢你。
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
c - strsep 废弃 strtok 的含义和使用指南是什么?
strtok
描述下第一行中状态的(BSD)手册页
此接口已被淘汰
strsep(3)
。
这是否意味着strtok
总体上不应该使用?它没有提供任何关于strtok
' 已过时的使用指南。在strsep
的手册页上,它在历史记录下声明
该
strsep()
功能旨在作为该功能的替代品strtok()
。虽然strtok()
出于可移植性的原因应该首选该函数(它符合 ISO/IEC 9899:1990 (``ISO C90'')),但它无法处理空字段,即检测由两个相邻分隔符分隔的字段,或者一次用于多个字符串。
所以,我的问题是
- 整体应该
strsep
用完了strtok
吗? strsep
1994 年 6 月的 BSD4.4 中出现了多少可移植性问题?- 所有符合 POSIX 的机器都有
strsep
吗?
c - 使用 C 将 CSV 文件解析为结构
我正在尝试解析 CSV 文件并将值放入结构中,但是当我退出循环时,我只返回文件的值。我不能使用 strtok,因为 csv 文件中的某些值是空的,它们会被跳过。我的解决方案是 strsep,当我在第一个 while 循环中时,我可以打印所有歌曲,但是当我离开它时,它只会返回文件的最后一个值。
有人可以告诉我为什么会发生这种情况以及如何解决吗?
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 任何帮助或指导会很棒我也不知道如何处理可能有逗号的大量数字?
c - getline() / strsep() 组合导致分段错误
运行下面的代码时出现分段错误。
它基本上应该读取一个.csv
超过 3M 行的文件,然后再做其他事情(与问题无关),但在 207746 次迭代之后,它会返回一个分段错误。如果我删除p = strsep(&line,"|");
并只打印整个line
它将打印> 3M行。
我想这与内存分配有关,但无法弄清楚如何解决它。
c - Strsep,进一步解析 CSV 输入
使用 strsep 拆分包含一堆无用垃圾的 CSV ("," Delim)。其中一个条目的两边都有引号(即Florida,"Bob",1999),我想在将它们保存到我的数组之前将它们拉出来。
如何从名称中删除引号?谢谢!
c - 在 c 中使用 strsep 函数需要帮助
我在理解 strsep 的工作原理时遇到了一些麻烦。我已经查找了它的教程,但是当我尝试不同的方法时,它总是无法编译。如果有人帮助我理解,将不胜感激语法和它的工作方式。谢谢你。
**编辑:“缓冲区”包含“我,曾经,在,在,在,学校”
****EDIT x2:我正在尝试解析一个csv文件,并以我在桌面上创建的基本“缓冲区”为例。我想用相应的逗号分隔不同的单词。
c - 如何将令牌指向的字符串值传递给C中的数组?
我正在尝试将 .csv 文件中的元素放入二维数组。这是我到目前为止写的代码。
我如何可以毫无问题地打印数据但不能将它们存储在数组中?
顺便说一句,我得到了上面代码的段错误。我认为这可能是因为这条线
1)我对变量的定义做错了吗?
2)将指针存储在数组中的意义何在?显然我也做错了,但这如何帮助我将字符串保存在数据中?
3)是否可以将单词作为字符串传递给二维数组?
我会很感激一些帮助。谢谢。
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 段错误。
我完全被难住了。