gpt4 book ai didi

c++ - 查找字符串中某个字符的所有出现

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:33 26 4
gpt4 key购买 nike

我有需要从中提取值的逗号分隔字符串。问题是这些字符串永远不会是固定大小。所以我决定遍历逗号组并阅读它们之间的内容。为此,我制作了一个函数,返回样本字符串中每次出现的位置。

这是一种明智的做法吗?这被认为是错误代码吗?

#include <string>
#include <iostream>
#include <vector>
#include <Windows.h>

using namespace std;

vector<int> findLocation(string sample, char findIt);

int main()
{
string test = "19,,112456.0,a,34656";
char findIt = ',';

vector<int> results = findLocation(test,findIt);
return 0;
}

vector<int> findLocation(string sample, char findIt)
{
vector<int> characterLocations;
for(int i =0; i < sample.size(); i++)
if(sample[i] == findIt)
characterLocations.push_back(sample[i]);

return characterLocations;
}

最佳答案

vector<int> findLocation(string sample, char findIt)
{
vector<int> characterLocations;
for(int i =0; i < sample.size(); i++)
if(sample[i] == findIt)
characterLocations.push_back(sample[i]);

return characterLocations;
}

如目前所写,这将简单地返回一个 vector ,其中包含字符本身的 int 表示,而不是它们的位置,如果我没看错你的问题,这才是你真正想要的。

替换这一行:

characterLocations.push_back(sample[i]);

用这一行:

characterLocations.push_back(i);

这应该会为您提供所需的 vector 。

关于c++ - 查找字符串中某个字符的所有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7726762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com