【编程】VC++中如何按字符来分割字符串

/ 22评 / 9

许多地学信息数据通常是由采集工具自动生成的文本文档来保存,相邻数据间常以空格、逗号或制表符等隔开(如下图),通常一个文本文档保存的数据能达到好几MB,手工录入到数据处理软件或数据库中几乎是不可能的,可以采用这样一种思路来处理这种数据:将每行的数据读入并保存到字符串中,然后每行再按分隔符分割成若干数据分别保存在数组中,进而输出成其它类型的文档或保存到数据库中就方便多了。

文本数据

txt格式的数据

最近在学习MFC,所以只介绍一下VC++中实现这种字符串分割的方法。其实只需要编写一个类似于php中的explode的函数即可,将需要处理的字符串、分隔符传入到函数中,然后将分割开的各项保存到一个字符串数组中即可。

如何从文本文档中读取数据不是本文主题,你可以自行搜索一下。分割字符串的函数可以这样写:
void SplitStr(CString input, CStringArray &output, char division)
//输入字符串为input,字符串数组output保存分割后结果,division为分割符
{
output.RemoveAll(); //清空数组
for(int i=0;i
灵活利用CString封装的一些方法可以让你省时省力,从这个函数中就可以很好的体现出来。使用该函数对字符串分割后可以用output.GetAt(i)的方式获得分割后的子串。

本文开始时的文本数据经过处理后显示在程序中是这样的:

处理后数据

基本上就这样了,Pavel还在努力学习MFC中,此文旨在和新手们分享一下学习所得,老鸟们还请多多指教~~

《 “【编程】VC++中如何按字符来分割字符串” 》 有 22 条评论

  1. 箴言说道:

    头大了··· ❓

  2. 小松说道:

    c的啊,好高级~

  3. 合伙淘说道:

    合伙淘来看过了 不错啊

  4. kaka说道:

    哇~你出来的界面竟然不是黑框框的~~让我好惊讶啊~~ 🙄

  5. ZDAvril说道:

    Pavel写技术文了。 👿

  6. ooaixt说道:

    来学习学习 :mrgreen:

  7. clyee说道:

    哈哈,看出来用了那个单机版的了~ 用VC就是简单,采集代理的时候都是需要自己一行一行的改很麻烦,后来就想出来每一行分离出前面多少要是两位数(或三位)等于前面的数+1就多一位 然后这么循环。。
    ➡ 不过你方法好像跟我差不多。。 对了你底下查询的数有点太多了,有时间优化一下,优化数据表 并且把没用的插件统统卸掉 🙂

  8. nalimai说道:

    两个循环
    问题解决..

  9. 纯野说道:

    虽说对字符串操作就那么些函数,但还是经常搞得人很头疼。

  10. 学夫子说道:

    MFC……我怎么看起来像肯德基?

回复 学夫子 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

  • 默认
  • 护眼
  • 夜晚
  • Serif
  • Sans