c++ - 从字符串 vector 中删除特殊字符 C++

标签 c++ string vector special-characters

我正在尝试从 vector 中的字符串中删除特殊字符。我在如何准确删除特殊字符方面遇到了问题。我有一个 vector 词;其中包含纯文本中的单词,我想删除特殊字符,例如 ?!.,; 等,还要删除空格。

最佳答案

一遍又一遍地删除单个字符并不是很快。该任务可以通过创建新字符串并向其添加非特殊字符来完成:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
  vector<string> words;
  words.push_back("");
  words.push_back("452346457");
  words.push_back(",.,;,;.;,;.;.?");
  words.push_back(";m;,./,/;,m;m,/,./,;");

  string special = string("?:,.;");

  for (string::size_type i = 0; i < words.size(); ++i)
  {
    string temp = words[i];
    words[i] = "";
    for (string::size_type j = 0; j < temp.size(); ++j)
    {
      if (special.find(temp[j]) == string::npos)
      {
        words[i] += temp[j];
      }
    }
  }

  for (string::size_type i = 0; i < words.size(); ++i)
  {
    cout << "\"" << words[i] << "\"\n";
  }
}

注意非常有用的用法 find功能。

关于c++ - 从字符串 vector 中删除特殊字符 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294795/

相关文章:

c++ - 从基类指针获取模板派生类值

c++ - 为什么 Clang 的 -Wrange-loop-analysis 在带有 std::string_view 变量的 for 循环中发出警告? std::string_view 不是引用吗?

c++ - 我们如何将此一维 vector 作为二维 vector 访问

c++ - 无法从 "initializer list"转换

c++ - vector::_M_range_check 异常

c++ - 根据当前标准,关闭 C++ 中的异常会导致未定义的行为吗?

c# - 在c#中将字节转换为二进制字符串

c - 如何将字符串分隔为不同的类型、can 信号?

java - JDBC 从 SQL 查询中解析 int

c++ - 数误差的质因数分解