извините, если заголовок в замешательстве, мне просто нужны некоторые опытные программисты, чтобы попытаться прояснить что-то для меня. Поэтому один из вопросов моей домашней работы задает мне вопрос (язык c):Как преобразовать строку в двойное значение с плавающей запятой?
Напишите функцию, которая получает строку и возвращает двойное значение с плавающей запятой. Декларация fucntion будет выглядеть следующим образом
double convertFloat(char s[]);
Не используйте функцию strtol() или любую другую функцию стандартной библиотеки C. Напишите свой собственный! ... Обратите внимание, что входная строка может иметь любой из следующих форматов: «1.34», «-1.4554», «6».
Я просто не уверен, как подойти к этому, потому что я не уверен, что здесь задают. Если бы мне пришлось написать функцию, чтобы найти квадратный корень или что-то в этом роде, я мог бы сделать это без проблем, но кажется, что мне нужно взять строки, которые являются всеми числами, и преобразовать их в плавающие ... просто не уверен, с чего начать и Подобные вещи в googling не дали никаких результатов.
Спасибо вам все заблаговременно.
- Davey
Сначала запишите точное описание строки с плавающей запятой. Знак, цифры, десятичная точка, больше цифр. Затем перейдите слева направо, превращая символы в числа. – stark
Вам нужно разобрать строку, проверить 1-й символ, если '-' или нет, а затем преобразовать все числа символов в число (вычесть из ASCII '0') умножить на 10 в зависимости от позиции. Сделайте то же самое для цифр после '.' но мощность от 10 до отрицательного показателя. – OldProgrammer
Вы должны проанализировать строку один символ (цифру) за раз. Например, первый символ равен «1»: так что результат теперь равен 1. Затем появляется символ «2». Ах! Старый результат должен быть умножен на 10, затем добавляется 2. Итак, теперь результат равен 12. И так далее. Необязательный знак и точка должны управляться также, но это первый скелет. – linuxfan