我有逗號分隔的字符串,我需要從拉動值。問題是這些字符串永遠不會是固定的大小。所以我決定遍歷各組逗號並閱讀它們之間的內容。爲了做到這一點,我做了一個函數,返回示例字符串中每個事件的位置。找到一個字符中所有出現的字符串
這是一個聰明的辦法做到這一點?這被認爲是不好的代碼?
#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;
}
對我來說這是完美的。雖然會有很多C++程序員說「爲什麼要發明輪子」和「使用這個功能,不要自己寫」。無論如何,我不關心他們,我不知道你。但是,您的代碼存在一個小問題。 'i'不應該達到'sample.length()',所以你應該在你的for循環條件中有'i
Shahbaz
Yup我剛剛修復了這個問題。此外,它需要.size()不是長度 – lodkkx
如果你打算後來拆分字符串,你可能想看看[這個問題](http://stackoverflow.com/questions/236129/how-到系分割一個串入-C)。 –