问题标签 [strtok]

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 投票
3 回答
3543 浏览

c - C中的strtok函数错误

我正在使用一个简单的程序来使用 strtok 函数对字符串进行标记。这是代码 -

程序运行成功。但是,如果将 a 行更改为

strtok 函数提供核心转储。我想解释一下我的理解为什么会这样?因为从 strtok 的声明为 --char *strtok( char *str1, const char *str2 ); char *str 作为第一个参数应该有效

0 投票
1 回答
3234 浏览

c - 使用 strtok 时如何跳过输入文件中的空行?

我想使用 strtok 传递文件的行;这些值以逗号分隔。然而,strtok 也会读取只包含空格的空行。在这种情况下不应该返回一个空指针吗?

我怎么能忽略这样的一行?我试图检查NULL,但如上所述它不起作用。

0 投票
1 回答
512 浏览

c - 使用 strtok_r 时 malloc.c 断言失败

我在 C (Ubuntu 10.10) 中创建了一个 UDP 服务器。服务器非常大,其中一部分使用 Strtok_r() 进行了一些字符串处理[我之前已经成功使用过这个函数]。当服务器第一次运行时,它会正确处理来自客户端的数据。但是当另一个客户端出现并发送一些数据时,程序崩溃并显示以下消息:

如果我注释掉 strtok_r() 函数,那么一切正常(无论有多少客户来!)。导致问题的代码是:

据我所知,代码没问题,它适用于第一个客户。我有点困惑,这个错误是什么意思?我试过 strtok() ,结果是一样的。

0 投票
2 回答
194 浏览

c - 我误解了 win32(也许还有 libc)strtok()

在某些 CGI 代码中,我需要对很少出现的“&”、“<”和“>”字符进行编码。在编码函数中,如果输入字符串中没有这样的字符,我想立即退出。因此,在进入时,我尝试使用它strtok( )来找出答案:

但是,即使没有任何定界符,也会strtok( )返回指向 的第一个字符的指针in

如果字符串中没有分隔符,我希望它返回 NULL。

我的代码错了,还是我的期望错了?我不想为了消除通常情况而调用 strchr( ) 三次。

谢谢!

0 投票
1 回答
107 浏览

c - 所有对象都具有相同的名称

我正在为我的 C 算法课程做我的最后一个项目。对于这个项目,我们必须获取一个包含以下行的输入文本文件:

或者

前者表示要添加到我们在程序中使用的图中的顶点,第二个标记是顶点的名称,最后一个标记是它在图结构的 vertices[] 数组中的索引。

我有一个while循环逐行遍历这个程序,它需要第一个标记来决定是制作顶点还是边,然后相应地继续。

当我完成文件遍历时,我调用我的 show_vertices 函数,它只是一个按顺序打印每个名称 (g->vertices[i].name) 的 for 循环。

问题是名称应该在输出(%s)中的位置,我不断得到我收集的最后一个“token1”。在我使用的特定输入文件的情况下,它恰好是列表中最后一条边的源节点......这很奇怪,因为之后还有另外两个值通过 strtok() 函数。文件中的行如下所示:

它创建了从索引 6 到 7 的边,权重为 1。边很好。但是当我printf用 %s 调用 any 时,它会出现“6”。不管。

这是文件遍历。

如果我在show_vertices这里运行,我会得到:

0 投票
3 回答
206 浏览

c - 从字符串标记字符串时出错

我想从 SIC 汇编代码生成符号表。为此,我尝试将每个字符串从汇编代码中分离出来。因此,在尝试第一步时,我尝试了这段代码。

在这里,我尝试的是逐行读取文件中的汇编代码。然后将行中的字符串分隔为标记。

当我删除令牌分离部分(如代码中所述)时,我将按预期打印所有行。但是,如果我与令牌分离一起运行,则第一行将被读取,并且令牌按我预期的那样分离。但是对于第二行,我收到错误作为分段错误。我无法追踪我哪里出错了。

所以,我需要专家的解释。

提前致谢。

我的档案:

我的示例输出:

0 投票
5 回答
9666 浏览

c - strtok() 获取字符串的第一个标记的问题

以下代码无法让我获得字符串的第一个标记:

0 投票
2 回答
404 浏览

c - strtok_r 提取引号内的字符串

我的字符串是:

我怎样才能提取它使用strtok_r

这是正确的做法吗?上面的语句会先跳过"吗?

0 投票
3 回答
1038 浏览

c - 使用 strtok_r 解析字符串

我的字符串如下所示:

我想解析直到没有反斜杠'\'的']'

我可以这样做strtok_r吗?如果不是我应该怎么做?

0 投票
3 回答
275 浏览

c - *str 和 atoi(str) 的区别

我正在标记化,并在带有分隔符'='的文本文件(已读入数组'store')上使用strtok

所以文件中有一条声明:TCP.port = 180

我做到了:

现在,如果我这样做*str,它会给我 '82'(可能是一些垃圾值)但atoi(str);给我 180(正确值)

我希望有人能对此有所了解,不应该取消引用 str 给我 180 吗?