func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<string> prices;   enum State { name, price };   double to_num(string s) {     double n = 0;     int dots = 0, dot = 0;     bool frac = false;     for (char c : s)       if (c ==  . ) ++dots;     if (s[s.size() - 3] ==  . ) frac = true;     for (int i = 0; i < s.size(); ++i) {       if (s[i] >=  0  && s[i] <=  9 ) {         n *= 10;         n += s[i] -  0 ;       } else if (s[i] ==  . )         ++dot;       if (dot == dots && frac) {         n += double(s[i + 1] -  0 ) / 10.;         n += double(s[i + 2] -  0 ) / 100.;         break;       }     }     return n;   }   string to_price(double n) {     string s = to_string(n);     string fraction;     int dot = 0;     for (int i = 0; i < s.size(); ++i)       if (s[i] ==  . ) dot = i;     if (s[dot + 1] !=  0  || s[dot + 2] !=  0 ) {       fraction.push_back( . );       fraction.push_back(s[dot + 1]);       fraction.push_back(s[dot + 2]);     }     string c = s.substr(0, dot);     s = c;     string integer = to_string(int(n));     string res;     for (int i = integer.size() - 1, k = 0; i >= 0; --i) {       ++k;       res.push_back(integer[i]);       if (k % 3 == 0 && i != 0) res.push_back( . );     }     reverse(res.begin(), res.end());     res += fraction;     return res;   }   int main() {     string input;     getline(cin, input);     string s;     State state = name;     for (char c : input) {       if (isalpha(c) && state == name)         continue;       else if (!isalpha(c) && state == name) {         state = price;         s.push_back(c);       } else if (!isalpha(c) && state == price)         s.push_back(c);       else if (isalpha(c) && state == price) {         state = name;         prices.push_back(s);         s.clear();       }     }     prices.push_back(s);     double sum = 0;     for (int i = 0; i < prices.size(); ++i) sum += to_num(prices[i]);     cout << to_price(sum);   }   