W trybie myślenia alternatywnego :)
#include <iostream>
#include <iomanip>
#include <string>
#include <set>
#include <algorithm>
bool is_number(const std::string& val_str) {
static const std::set<char> nums_char{
'0','1','2','3','4','5','6','7','8','9','.'
};
return std::all_of(val_str.cbegin(), val_str.cend(),
[](char x) { return nums_char.find(x) != nums_char.cend(); });
}
int main() {
std::string val = "12.3443";
std::cout << std::boolalpha << val << " is number: " << is_number(val) << '\n';
}
Oczywiście brak obsługi wielu przypadków brzegowych... Tu chodziło o zachętę do zerknięcia na istniejące algorytmy i użyteczne kontenery.