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