Posted on 03-06-2009
Filed Under (技术) by waterlin

今天要用C++来分割一段字符串,比如说对于路径C:\ug_en\xerces-c-3.0.0.zip来说,我想分离出文件名,要怎么办呢?

其实很简单,只要把字符串分割一下就好了:

string dir = “C:\\ug_en\\xerces-c-3.0.0.zip”;
string name;
string::size_type position = dir.find_last_of(“\\”);
name = dir.substr(position+1);

注意的是,最后用到了position+1,而不仅仅是position,因为我们还是需要把\这个路径符给扔掉。

相对于C++标准库里string的find_last_of方法,同样类似功能的方法有以下几种方法:

Member function Purpose
find() find the first position of the specified substring
find_first_of() equal to find(), but finds the first position of any character specified
find_last_of() equal to find first of(), but finds the last position of any character specified
find_first_not_of() equal to find first of(), but returns the position of the first character not of those specified
find_last_not_of() equal to find last of(), but returns the last position of any characters not specified
rfind() equal to find(), but searches backwards

在C++里操作字符串,大概就是这种思路,有点麻烦。这几天编了不少C++的代码,太怀念文本处理能力强大的Perl了!我觉得语言本身倒不是太重要,只是语言本身捆绑的库很重要,起码能让你工作的时候少造轮子!

更详细的有关C++的字符串操作,可以看看OOPWeb上的这篇文章

© 2009, 浏忙大爆炸. All rights reserved.
除非注明,浏忙大爆炸文章均为原创,转载请以链接形式标明本文地址。

(1) Comment    (1,323) Views    Read More   

Comments

longines on 3 June, 2009 at 10:44 pm #

不错学习下

[Reply]


Post a Comment
Name:
Email:
Website:
Comments: