问题标签 [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:奇怪的结果
strsep
与多个分隔符一起使用时,我目前有一些奇怪的结果。我的分隔符包括 TAB 字符、空格字符以及>
and <
。
这个输出是我所期望的。
但是,只要我为分隔符添加 '<' 字符,我就会得到
不知何故,第一个字符被切断了。发生这种情况是否有原因?
谢谢你。
c - 使用 strsep 读取 csv 文件的分段错误
我目前正在尝试使用 strsep 读取 csv 文件,但它从未通过第一行
这个程序的输出是
它打印第一行,但不打印其余部分。
谢谢!
c - 在 for 循环中的 strsep() 之后调用 printf() 会导致段错误
我正在用 C 语言编写自己的 UNIX shell,并尝试添加对在引号内传递多字参数的支持(即echo "This is a test"
)。在您可以在下面看到的当前函数 ( parseCommandWords
) 中,我成功地分离了通过输入参数传递给函数的单词,并通过strsep()
. 但是,一旦printf()
调用运行并打印出正确的word
and值input
,就会引发分段错误。它永远不会到达 printf 下面的任何 if 语句,在它下面添加任何东西,根本不会运行。我没有看到是什么导致了这个问题。input = ls
使用例如(简单命令)对其进行测试,它word = ls | input = (null)
会按您的预期打印。
该parsedWords
参数最初是一个 NULL 字符串数组,并且参数在传递给函数之前也经过验证。
更新 #1:问题几乎肯定与strcpy(parsedWords[i],word)
. 将其更改为parsedWords[i] = word
不会导致段错误,但当然,一旦我们退出函数,它就会失去其价值。当它通知我非法读/写时,我能够使用 Valgrind 查明这一点。
更新 2:我认为问题在于我args
在parseInput
. 用 NULL 初始化每个 char* 然后尝试使用 strcpy 在该位置写入应该是导致问题的原因,对吗?像这样动态地为每个字符串分配内存可以解决问题:
完整代码:
这是最小的可重现示例:
头文件:
c - 使用 strsep 的分段错误
我正在尝试使用strsep
删除 CSV 文件中的多余字符。问题是当我运行它时,它给了我分段错误,我不知道为什么。这是代码:
使用gdb调试代码,它说它发生在行中if(strlen(p) == 0 {
所以它甚至没有进入switch case。我不知道为什么会这样。
谢谢