C++ 处理中文符号实例详解

时间:2022-05-10 06:58:57

C++ 处理中文符号

英文符号替换为英文逗号

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
processPunctuation(string& tag)
{
  std::set<char> punctuation_set;
  punctuation_set.insert(' ');
  punctuation_set.insert('\t');
  punctuation_set.insert(';');
 
  for (int i=0; i< tag.size(); i++) {
    if (punctuation_set.find(tag[i]) != punctuation_set.end())
    {
      tag[i] = ',';
    }
  }
  return;
}

中文逗号替换为英文逗号

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
processChinesePunctuation(string& tag)
{
  string u8comma = u8",";
  for (int i = 0; i < tag.size() - u8comma.size() + 1; i++)
  {
    bool find = true;
    // 查找空格依赖于 UTF-8 的特性
    for (int j = 0; j < u8comma.size(); j++)
    {
      if (tag[i + j] != u8comma[j])
      {
        find = false;
        break;
      }
    
 
    if (find)
    {
      // 替换为 ,
      tag[i] = ',';
      auto it = tag.begin();
      it += i + 1;
      for (int j = 1; j < u8comma.size(); j++)
        it = tag.erase(it);
    }
  }
  return;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!