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

How to extract part of a string in c++

本文关键字:字符串 一部分 提取 c++      更新时间:2023-10-16

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

给定行为:

D:AB554P_Itr23ModelDirAB554P_approximation_NodeData.dat Read 3/18/2010

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

你有没有查过string::substr

Boost::Filesystem…

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

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

在你的例子中如何分割3个字段在很大程度上取决于形成那行文本的规则是什么。它是如何划分的?它是由空格分隔的吗?如果是,如何转义文件路径中的空格?除非你明确说明了这些信息,否则你的问题的这一部分是无法回答的。

为了处理Windows路径,请使用Windows API的路径函数,如PathFindFileName

干杯,hth。

  1. 这里c++ Parse Split Delimited String你得到main函数。
  2. 删除空格后的部分,使用:

string s = "D:AB554P_Itr23ModelDir ab554p_approximate _nodedata .dat Read 3/18/2010";


size_t pos;
s.erase (pos);

现在调用split为''来分割剩余的部分。

您可能想研究正则表达式库,例如Boost Regex。