博客
关于我
按照分号分割字符串
阅读量:146 次
发布时间:2019-02-28

本文共 1182 字,大约阅读时间需要 3 分钟。

统一分号格式处理

为了确保代码中的分号格式统一,避免中英文分号混淆,我们对源字符串进行处理:

首先,将英文分号"_T(";")"替换为中文分号_T(";")

```cppstr.Replace(_T(";"), _T(";"));

接下来,我们遍历字符串,找出所有的中文分号位置,并将字符串分割为多个部分:

初始化两个变量int bj = 0;int ej = 0;,其中bj表示当前分割的起始位置,ej表示当前分割的结束位置。

分割逻辑详细说明

while (ej = str.Find(_T(";"), bj))循环中,我们不断查找从bj位置开始的下一个中文分号:

如果找到的分号位置ej小于1,表示没有更多的分号了:

if (ej < 1){    if (bj <= str.GetLength()) // 检查是否是末尾没有加分号的情况    {        temp = str.Mid(bj, str.GetLength());        v1.push_back(temp);    }    break;}

如果找到分号,取出从bjej - bj的子字符串,并将其添加到v1容器中:

temp = str.Mid(bj, ej - bj);v1.push_back(temp);

然后更新bjej + 1,继续查找下一个分号的位置:

bj = ej + 1;ej = 0;

分割结果存储

所有分割后的字符串片段都存储在v1容器中,供后续处理使用:

vector
v1;

处理特殊情况

在分割循环结束后,需要处理可能的末尾情况:

如果最后一个字符没有分号,取出从bj到字符串末尾的内容,并添加到v1容器中:

if (bj <= str.GetLength()){    temp = str.Mid(bj, str.GetLength());    v1.push_back(temp);}

代码执行流程总结

整个处理流程可以总结为以下步骤:

  • 替换所有英文分号为中文分号
  • 遍历字符串,找到所有中文分号的位置
  • 根据分号位置分割字符串
  • 将分割后的片段存储在容器中
  • 处理可能的末尾情况
  • 代码解释

    代码主要由以下几个部分组成:

  • str.Replace(_T(";"), _T(";")):替换英文分号为中文分号
  • while (ej = str.Find(_T(";"), bj)):查找分号位置循环
  • if (ej < 1):判断是否为末尾情况
  • temp = str.Mid(bj, str.GetLength()):取末尾子字符串
  • v1.push_back(temp):存储分割后的片段
  • bj = ej + 1:更新起始位置
  • ej = 0:重置分号位置
  • 整个处理逻辑清晰,能够有效分割字符串,确保分号格式统一。

    ```

    转载地址:http://liyc.baihongyu.com/

    你可能感兴趣的文章
    spring5-介绍Spring框架
    查看>>
    pandas,python - 如何在时间序列中选择特定时间
    查看>>
    Spring 框架之 AOP 原理深度剖析
    查看>>
    Pandas:如何按列元素的组合分组,以指示基于不同列的值的同现?
    查看>>
    Pandas:将一列与数据帧的所有其他列进行比较
    查看>>
    PANDA:基于多列对数据表的行运行计算,并将输出存储在新列中
    查看>>
    PandoraFMS 监控软件 SQL注入漏洞复现
    查看>>
    PandoraFMS 监控软件 任意文件上传漏洞复现
    查看>>
    Papyrus项目常见问题解决方案
    查看>>
    Parallel.ForEach使用示例
    查看>>
    Parallel.ForEach的基础使用
    查看>>
    parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率...
    查看>>
    parallelStream导致LinkedList遍历时空指针的问题
    查看>>
    Parameter ‘password‘ not found. Available parameters are [md5String, param1, username, param2]
    查看>>
    ParameterizedThreadStart task
    查看>>
    Spring security之管理session
    查看>>
    paramiko模块
    查看>>
    param[:]=param-lr*param.grad/batch_size的理解
    查看>>
    spring mvc excludePathPatterns失效 如何解决spring拦截器失效 excludePathPatterns忽略失效 拦截器失效 spring免验证拦截器不起作用
    查看>>
    Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
    查看>>