Line data Source code
1 : #include "str_and_math.h"
2 :
3 : using namespace std;
4 :
5 204317 : int is_number(string s)
6 : {
7 204317 : string::const_iterator it = s.begin();
8 :
9 3797280 : while (it != s.end() && ( isdigit(*it) || *it == '.' || *it == '-')) {
10 3388646 : ++it;
11 : }
12 204317 : return !s.empty() && it == s.end();
13 : }
14 :
15 :
16 185466 : double str2double(string str, int *valid_flag)
17 : {
18 185466 : char *endptr = NULL;
19 185466 : double value = strtod(str.c_str(), &endptr);
20 :
21 185466 : if (*endptr) {
22 0 : *valid_flag = 0;
23 0 : }
24 :
25 185466 : return value;
26 : }
27 :
28 182470 : int find_comma_and_remove_it(string *tokn)
29 : {
30 182470 : int pos = 0;
31 182470 : int value = 0;
32 :
33 182470 : if ( (pos = tokn->find_first_of(",")) != string::npos) {
34 54546 : *tokn = tokn->substr(0, pos);
35 54546 : value = 1;
36 54546 : }
37 :
38 182470 : return value;
39 0 : }
|