c++ - 如何在忽略特定字符的情况下将单词读入字符串

标签 c++ string

我正在读取一个文本文件,其中包含一个带有标点符号的单词,我想将这个单词读入一个没有标点符号的字符串。

例如,一个词可能是“你好”

我希望字符串得到“Hello”(没有逗号)。我怎样才能在 C++ 中仅使用 ifstream 库来做到这一点。 我可以使用忽略功能忽略最后一个字符吗?

提前谢谢你。

最佳答案

试试 ifstream::get(Ch* p, streamsize n, Ch term)。

一个例子:

char buffer[64];
std::cin.get(buffer, 64, ',');
// will read up to 64 characters until a ',' is found
// For the string "Hello," it would stream in "Hello"

如果您需要比简单的逗号更可靠,则需要对字符串进行后处理。这些步骤可能是:

  1. 将流读入字符串
  2. 使用 string::find_first_of() 帮助“分块”单词
  3. 根据需要返回单词。

如果我误解了你的问题,请随时详细说明!

关于c++ - 如何在忽略特定字符的情况下将单词读入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1678347/

相关文章:

c# - 为什么在多行中连接字符串比在一个语句中添加字符串更快?

c++ - 我什么时候应该使用 VULKAN_HPP_NO_EXCEPTIONS?

使用 lambda 和 std::function 的 C++11 类型推断

javascript - 在字符串中查找模式的更好方法是什么?

java - 字符串表示形式的二进制数据到 PDF 文件

string - `const` 字符串参数(线程)安全吗

c++ - 如何在字符串的字符数组中使用++ 运算符访问下一个字符串?

c++ - 生成 2 到 10,000 之间的数字。打印出来的数字只能是2个质数的倍数

c++ - utf-8 中 std::string 的子字符串? C++11

java - 在Java中将字符串压缩到指定的最大字符数