Zadanie 7. Napisz funkcję o nazwie lanNaFloat(), która konwertuje łańcuch znakowy na wartość zmienno przecinkową. Niech funkcja akceptuje opcjonalny znak minus. Zatem, wywołanie lanNaFloat ("-867.6921"); powinno zwrócić wartość −867.6921.

Zadanie 7. Napisz funkcję o nazwie lanNaFloat(), która konwertuje łańcuch znakowy na wartość zmienno przecinkową. Niech funkcja akceptuje opcjonalny znak minus. Zatem, wywołanie lanNaFloat ("-867.6921"); powinno zwrócić wartość −867.6921.
Odpowiedź

Domyślam się, że chodzi o C++. W tym języku jest już taka funkcja. Nazywa się stof (skrót string to float). Została wprowadzona wraz ze standardem c++11. Więc żeby jej użyć, musisz powiedzieć kompilatorowi, że będziesz używał tego standardu. Przykład jak to zrobić z linii poleceń: g++ -o program program.cpp --std=c++11 W załączniku znajdziesz 3 wersje tego samego programu. Pierwsza z nich robi dokładnie to, o co prosiłeś - zwykła funkcja bez udziwnień. Druga wersja pokazuje jak ulepszyć tę funkcję, aby konwertowała na dowolny typ. Nie wymaga c++11. Jest to template funkcji. No i wreszcie trzecia wersja, która używa funkcji, o której wspomniałem na początku i wymaga c++11.

Dodaj swoją odpowiedź