Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Плавать из char* в c

Автор вопроса: dhottОтветов: 2

Как практика, я пытаюсь сделать простую поддельную оболочку с 2 простыми командами. это также мой первый раз, когда я использую strtok. требуется команда (получить или установить) и параметр для доступа (ширина, высота и т. д.). моя проблема в том, что третий аргумент - это число с плавающей запятой, и я хочу преобразовать его из char *, который возвращает strtok, в переменную с плавающей запятой, в которой я пытаюсь ее сохранить. В данный момент я в растерянности. Раньше я был довольно эффективен в с, но после нескольких лет перерыва я был поражен тем, как много я забыл языка. Любая помощь приветствуется. Меня сейчас нет дома, но если нужно, то выложу код.

Спасибо за уделенное время.

ctype-conversion

Ответы

Ответ 1 · рейтинг 1 · jpw

Возможно, вы находясь в поиске? Берет char* (например, из strtok) и превращает его в двойное.

Ответ 2 · рейтинг 1 · Vadim

Чтобы разобрать Double, ваши варианты:

  1. strtod() - см. здесь или здесь

  2. atof() - см. здесь

  3. sscanf() - см. здесь

atof не позволяет проверить число, он вернет 0,0, если синтаксический анализ завершится неудачно. sscanf немного громоздкий, а форматирование %f может присутствовать не во всех системах. Попробуйте посмотреть на strtod или strtof (если вам нужны поплавки).

Вы можете использовать его так (txt - это ваш char*)

char *end;
float num = strtof(txt, &end);
if (end != txt + strlen(txt))
{
    // This means something went wrong
}
else
{
    // This means everything is OK
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы