基于引号标记字符串
Tokenize a string based on quotes
我正试图从文本文件中读取数据,并根据引号分割读取行。例如
"Hi how" "are you" "thanks"
预期输出 Hi how
are you
thanks
我代码:getline(infile, line);
ch = strdup(line.c_str());
ch1 = strtok(ch, " ");
while (ch1 != NULL)
{
a3[i] = ch1;
ch1 = strtok(NULL, " ");
i++;
}
我不知道该指定什么作为分隔符字符串。我用strtok()
来拆分,但是失败了。有人能帮我吗?
请看下面的示例代码。您应该提供""作为分隔符字符串来strtok。例如,
ch1 = strtok (ch,""");
可能您的问题与表示转义序列有关。请查看这里的字符转义序列列表
给定您的输入:"Hi how" "are you" "thanks"
,如果您使用strtok
和"""
作为分隔符,它将把引号字符串之间的空格视为字符串,因此,如果(例如)您打印出结果字符串,每行一个,由方括号包围,您将得到:
[Hi how]
[ ]
[are you]
[ ]
[thanks]
。,每个引号字符串之间的空白字符本身被视为字符串。如果您提供给strtok
的分隔符是" ""
(即包括引号和空格),则不会发生这种情况,但是然后它也会在引号内的空格上断开。
假设你可以依赖于你关心的每一个项目被引用,你想跳过任何东西,直到你得到一个引号,忽略引号,然后读取数据到你的输入字符串,直到你得到另一个引号,然后重复整个过程。
相关文章:
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 替换字符串中的单词,但忽略引号中的单词
- 如何在 Arduino 字符串的开头添加元素.类似于 JS unshift();
- C++未知长度字符串的数组,其行为类似于 Python 字符串列表
- 我如何知道字符串中字符相对于英文字母的位置值?
- 从双引号括起来的子字符串中删除特定字符
- 反斜杠和引号不计入字符串长度?
- 构造一个类似于JSON文件c++的字符串
- FBString 的小字符串优化是否依赖于未定义的行为?
- 使用带有 std::cout 的单引号打印字符串实际上打印了数字
- 匹配外部单引号之间的字符串
- 在字符串流的 SSH 命令中转义 bash 脚本中的引号
- STD :: cin和Scanf()应用于字符串之间的区别
- 覆盖字符串的引号C++消失
- C++实现代码中的字符串不应存在于输出二进制文件中.如何解决
- snprintf等效于WCHAR_T计算格式化的字符串大小(MAC)
- 从带有ifstream和get()的文件中获取一个用引号表示的字符串
- 如何正确地将规则 5(或零?)应用于包含带有字符串的自定义对象向量的类
- C# 是否有办法将双精度数组强制转换为类似于C++转换为 char* 的字符串?
- 如何通过Visual Studio中的预处理器传递包含字符串和引号的环境变量