如何在c ++中提取部分字符串

时间:2011-08-07 19:10:15

标签: c++ c++builder

提取给定行中字符串的一部分:

给定的行是:

D:\AB554P_Itr23\ModelDir\AB554P_approximation_NodeData.dat Read 3/18/2010

我只需要提取文件名AB554P_approximation_NodeData.dat。我正在使用CodeGear RAD Studio C ++ Builder。感谢:)

6 个答案:

答案 0 :(得分:4)

您是否考虑过string::substr

答案 1 :(得分:4)

Boost::Filesystem ......

怎么样?
string name = path( "D:\\AB554P_Itr23\\ModelDir\\AB554P_approximation_NodeData.dat").filename()

答案 2 :(得分:3)

RTL函数ExtractFileName()将从路径中提取文件名。

究竟如何拆分示例中的3个字段在很大程度上取决于形成该行文本的规则。它是如何划分的?是由空格分隔?如果是这样,你如何逃避文件路径中的空格?在您指定该信息之前,您的问题的这一部分是无法回答的。

答案 3 :(得分:1)

要处理Windows路径,请使用Windows API path functions,例如PathFindFileName

干杯&第h。,

答案 4 :(得分:1)

  1. 这里C++ Parse Split Delimited String你得到了主要功能。
  2. 要删除空格后的部分,请使用:
  3. string s =“D:\ AB554P_Itr23 \ ModelDir \ AB554P_approximation_NodeData.dat阅读2010年3月18日”;

    size_t pos;
    pos = s.find(“”);
    s.erase(POS);

    现在请split为'\'分割剩下的部分。

答案 5 :(得分:0)

您可能需要调查正则表达式库,例如Boost Regex