当前位置: 首页 > 知识库问答 >
问题:

C++中如何使用起始和结束分隔符提取子字符串

佴博实
2023-03-14

我有一个来自命令行输入的字符串,如下所示:

string input = cmd_line.get_arg("-i"); // Filepath for offline mode

这看起来像一个文件,如下所示:

input = "../../dataPosition180.csv"

我想提取180并存储为int

在python中,我只需要:

data = int(input.split('Position')[-1].split('.csv')[0])

我如何在C++中复制它?

共有1个答案

柴英锐
2023-03-14

这里有一个(有点冗长的)解决方案:

#include <string>
#include <iostream>

using namespace std;

int main() {
  string input = "../../dataPosition180.csv";
  // We add 8 because we want the position after "Position", which has length 8.
  int start = input.rfind("Position") + 8;
  int end = input.find(".csv");
  int length = end - start;
  int part = atoi(input.substr(start, length).c_str());
  cout << part << endl;
  return 0;
}
 类似资料:
  • 我想从MySQL中的字符串中提取子字符串。该字符串包含多个子字符串,子字符串之间用逗号(',')分隔。我需要使用任何MySQL函数提取这些子字符串。 例如: 我想选择颜色字段并提取红色、黄色和绿色的子字符串,用逗号分隔。

  • 问题内容: 我想从MySQL中的字符串中提取子字符串。该字符串包含多个子字符串,以逗号(’,’)分隔。我需要使用任何MySQL函数提取这些子字符串。 例如: 我想选择颜色字段并将子字符串提取为红色,黄色和绿色,并以 逗号 分隔。 问题答案: 可能的重复:将值从一个字段拆分为两个 不幸的是,MySQL没有拆分字符串功能。如上面的链接所示,有用户定义的分割功能。 下面是获取数据的更详细的版本:

  • 我有这根弦: Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim adminimveniam,quis nostrud eximitation ullamco laboris nisi Ut ali

  • 我希望能够根据子字符串分隔符拆分字符串,在分隔符子字符串的第一个字符之前开始拆分。现在: 将给我,但我希望得到

  • 问题内容: 我有一个包含以下行的文件: 我想在此文件上执行命令以仅提取参数名称,如以下输出所示: 这个命令可能是什么? 问题答案: 你要。 这将是一个快速而肮脏的hack:

  • 问题内容: 我需要在数据库中填充纬度和经度列,但是原始信息存储为单个字符串 例如。 我猜想TRIM命令在这里很有用,但是我不知道如何告诉它每半个部分都精确地停在逗号上。 我希望能够提出一个简单的UPDATE查询,如下所示: 但是显然在LTRIM和RTRIM部分中需要做一些额外的工作,因此我只选择数据,但不包括UDFChar1中的逗号。 关于如何实现这一目标的任何想法? 问题答案: 请试试: 和 样