Wpis z mikrobloga

Część Mirasy, mam problem chcę zamienić w stringu wszystkie liczby całkowite na ich odpowiednik ułamkowy(1=>1.0), próbuje to robić za pomocą regexów, ale dałem radę zrobić tylko dla liczb z przedziału od [0-9]. Moglibyście spojrzeć na ten kawałek kodu?

std::regex numbers("^[0-9]{3}$");
while (std::getline(file, line)) {
std::string newLine = line;
std::cout << std::regex_replace(newLine, numbers, "$&.0") << std::endl;

}

Miłego piątku!
#cpp #naukaprogramowania
  • 9
@Kiszka_94: Nooo. Na przykładzie numeru telefonu, masz np. 00-000-000-000 to możesz ustawić tak regexa(wyrażenie regularne), żeby Ci sprawdzał czy podany przez użytkownika numer odpowiada temu wzorcowi. A jak zrobić to bez tego to raczej też wiem.
@GaHee aaaa, to są wyrażenia regularne. No dobra. Ja bym raczej wczytywał po kolei liczby ze string (skoro wiesz co je oddziela to raczej easy) i dopisywał .0 i już

Próbuj wyrażeniami, faktycznie fajne rozwiązanie
@GaHee: R"(tekst)" powoduje, że tekst w środku będzie traktowany dosłownie - "\n" będzie traktowane jako "\n", a nie jako znak nowej linii. żeby przekazać znak nowej linii trzeba... po prostu kontynuować w nowej linii. Przydatne do regexów, bo tam się roi od \d i \w, które trzeba by escapeować podwójnie