将 strtok 分隔符设置为两个字符
Setting strtok delimiter to two characters
>我正在使用 strtok 函数,其第二个参数是分隔符列表。我试图将我的分隔符设置为逗号,后跟一个空格,例如:,(space)
因此我将函数设置为 strok(foobar,", ") .这个问题是现在的分隔符是逗号,
或空格(space)
。
我如何克服这个问题,我不介意使用类类
我如何克服这个问题
不使用 strtok
,它只能用于标记带有 1 个字符分隔符的字符串,并且由于其许多陷阱而无论如何都是不明智的。
相反,我认为最简单的解决方案是简单地std::find
您正在寻找的分隔符,并构建一个令牌集合。
您使用了错误的工具来完成这项工作。分隔符是逗号或空格不是问题 - 这是设计使然。请改用strstr
。
您可以使用标准的 C 函数 strstr 自己搜索分隔符。考虑到 strtok 在源字符串中用零字符替换 delimeter。
相关文章:
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 在函数中连接两个字符,并在 C++ 中返回输出
- 舍入 QDecDouble 值,精度最多为两个字符
- 计算两个字符序列
- 在c++中连接两个字符
- 有没有办法我可以从 istringstream 中读取两个字符
- 如何查看两个字符变量是否相等
- 使用位于 C 字符串中的两个字符*获取子字符串
- 比较两个字符的问题
- 如何修复密码条目,它一次输入两个字符
- 字符串构造函数将两个字符* 放入另一个 std::string 在 C++14 中有效,但不适用于 C++17
- 将两个字符数组相互添加
- 在 c++ 中添加两个字符
- 如何删除QString的前两个字符
- 如何使用两个字符来控制 C++ 程序的流程
- 如何将两个字符或字符串数组附加到一个数组中
- 如何从两个字符之间的文件中提取整数
- 删除两个字符之间的文本
- std::setw() 将特殊字符视为两个字符
- 比较两个字符*是否相等