tvn007@hotmail.com wrote:
[color=blue]
> Please help, I am not sure why this code not even compile due to
> line 39 and 44.
> Thanks in advance for any help
>
>
> 1 #include <cctype>
> 2 #include <iostream>
> 3 #include <string>
> 4 #include <vector>
> 5
> 6 using std::cin;
> 7 using std::cout;
> 8 using std::endl;
> 9 using std::getline;
> 10 using std::string;
> 11 using std::vector;
> 12
> 13 double split (const std::string&,int);
> 14
> 15 int main()
> 16 {
> 17 string s =("1.1,2.3,3.5,4.2");
> 18
> 19 const int loc = 3;
> 20 double results;
> 21
> 22 results= split(s,loc);
> 23 cout <<"RESULT IS"<<" "<< results<<endl;
> 24
> 25
> 26 return 0;
> 27 }
> 28
> 29
> 30 double split(const string& fw_answer,const int ok )
> 31 {
> 32 double data;
> 33 vector<string> ret;
> 34 const string separator (",");[/color]
Try:
char const separator = ',';
[color=blue]
> 35 typedef string::size_type string_size;
> 36 string_size i = 0;
> 37
> 38 while (i != fw_answer.size()) {
> 39 while (i != fw_answer.size() && (fw_answer[i]==separator))
> 40 ++i;
> 41
> 42 string_size j = i;
> 43
> 44 while (j != fw_answer.size() && !(fw_answer[j]==separator))
> 45 ++j;
> 46
> 47 if (i != j) {
> 48 ret.push_back(fw_answer.substr(i, j - i));
> 49 i = j;
> 50 }
> 51
> 52 }
> 53 for (vector<string>::size_type i = 0; i != ret.size(); ++i)
> 54 if (i==ok){
> 55 data = atof(ret[i].c_str());
> 56 cout <<"HERE it is" <<" "<< ret[i] << endl;
> 57 }
> 58 return data;
> 59 }
> 60[/color]
Best
Kai-Uwe Bux