问题标签 [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.
php - PHP:IF 语句独立工作,但不在 WHILE 循环内
问题:
假设我有 $keyword = 在搜索框中输入了一个句子,例如“大白框”
我需要做的是将其分解为单个单词,然后测试每个单词以确保 * 不会出现在前 3 个字母中。(所以, sen* 可以,但 se* 不行)。如果 * 确实出现在任何单个单词的前 3 个字母中,则“if ($keyword) ...”过程需要结束。
...代码继续...
如您所见,我每次都在回显以查看它的处理过程。
如果我去掉“if”代码,那么它会输出“largewhiteboxes”并按预期继续。
如果我将“if”代码保持原样,则仅输出“large”,并且例程结束 - 即使条件尚未满足!
如果我在 WHILE 循环之外单独运行该“if”语句,它工作得很好,对前 3 个位置的 * 响应为真,对其他所有位置响应为假......
我可能做错了什么???
php - PHP Ifelse 语句为真,不管
好的,我现在正在尝试扩展我之前在这里解决的一些代码。下面的这段代码分配了一个输入到搜索框中的短语,并尝试执行以下操作:1)清除我不想要的东西(注意:输入是预处理的,所以我现在只是省略更多,并且仍在这部分工作)。2) 使用空格作为分隔符将短语分成单独的单词 3) 检查提取的每个单独单词以查看前 3 个字符中是否存在 *,如果存在,则中止该过程 4) 检查单词“and”或“或”被使用——如果是这样,不加修改地应用它们——如果不是,那么在短语中插入一个“和”。(如果用户没有自己指定,最终会自动将短语转换为“and”短语)。5) 在整个过程中,
问题:
一切正常,除了某些原因 ELSEIF 语句总是正确的?!无论我做什么,都会插入一个额外的“和”,无论上面的 if 语句是否为真。我已经验证了最初的 if 语句确实有效,它检测是否存在“和”或“或”并相应地应用它......但随后它继续处理 ELSEIF !我什至尝试过:
但最后,不管怎样,最终的短语都会以'and and's 或'or and's 结尾。
(注意:我意识到有比 preg_replace 更好的选择,但我会在其他时间研究 - 所以对于这个问题,我只是想解决 ELSEIF 困境,谢谢)
APPENDING MODS 基于响应...
所以,我将代码更改为...
但结果仍然不正确。例如:
“white football helmut”确实变成了“white and football and helmut”,然而……“white and football and helmut”变成了“white and and football and and helmut”。
如果if为真,我只是不明白ifelse如何处理?
注意:为了验证 IF 部分是否正常工作,我在该语句中放置了一个 x:
而“white and football and helmut”的结果是“white xand and football xand and helmut”。此外,“white and football helmut”(没有 2nd and)导致“white xand and football and helmut”。!!因此, IF 语句正在按预期处理 - 而不是 ELSEIF !
c - strtok 和 strcpy 错误
我曾经strtok
拆分一个字符串。
[更新]我在下面的新版本中使用了您的评论和答案,但在 atm 中不起作用
printf("tmp[idx] ...
打印正确。
但是在我运行该方法之后,我主要是:
数组split_url
为空。
编译器和 gdb 都很好。
有人有想法吗?
c - 解析文档
我需要用 C 语言解析一个文档。我正要使用 strtok 函数,但我不知道它是否是最好的方法,或者只是一个令牌系统就足够了(搜索 \n、空格等)。
文档每一行的结构是:element \n element "x"。
谢谢 :-)
c - C 程序从不从 strtok() 函数返回的问题
我正在完成一项大学作业,我一直在思考一个奇怪的问题,我的程序调用strtok
并且永远不会返回。
我的代码如下所示:
我在网上查了一堆网站,但我看不出我使用的方式有什么问题,strtok
我无法确定为什么我的代码会卡在线上lineTokenPtr = strtok(data, "\n");
任何人都可以帮我解释一下吗?
(如果有任何区别,请使用 OSX 和 Xcode)
c - 在 c 中使用标记化
我正在尝试标记一条线并将其放入二维数组中,到目前为止我已经想出了这个,但我觉得我还很遥远:
c - strtok 字符串溢出问题
我有一个数据文件:
以及以下代码对其进行标记:
问题是,一旦打印了跟在较长字符串后面的字符串,较长字符串中的数据就会在较短字符串的末尾打印出来。我假设这与字符串终止有关?
有人看到我在这里做错了什么吗?
c - strtok 和分段错误的问题
我有两个辅助函数来分解十进制价格格式的字符串,即。“23.00”、“2.30”
考虑一下:
现在,当我运行以下命令时,会出现分段错误:
但是,当我单独运行它们而没有一个跟随另一个时,它们工作正常。我在这里想念什么?我是否必须对 strtok 进行某种重置?
我的解决方案:
根据我从下面选择的答案中获得的有关 strtok 的知识,我更改了辅助函数的实现,以便它们首先复制传入的字符串,从而屏蔽原始字符串并防止出现此问题:
c - 为什么 strtok() 被认为是不安全的?
我需要注意哪些strtok
不安全的功能(就缓冲区溢出而言)?
对我来说有点奇怪的是strtok_s
Visual C++ 中的(这是“安全的”)有一个额外的“上下文”参数,但它看起来在其他方面是相同的......是相同的,还是实际上不同?
c++ - 如何使用字符串 argumnet 而不是字符数组来使用 strtok()?
使用时strtok()
我执行以下操作
我如何使用字符串而不是字符数组char str[300];
有没有办法用它变成这样,string str;
while(infile) {
infile.getline(str,300);
char* token=strtok(str," ");