2009-11-09 3 views
0

У меня есть следующая вещь, которую я хотел преобразовать в int.Как преобразовать строку в int в C

char *ptr; // this can point to variable length of string 

int balance = functionToConverIntoint(ptr) 

Так есть ли такая функция в C "functionToConverIntoint", которая может выполнять эту работу?

+7

Вы даже попытались найти это в stackoverflow? – wilhelmtell

+0

У меня есть, но не они обсуждали решение C. – itsaboutcode

+3

@itsaboutcode: это просто неправильно. Сожалею. http://stackoverflow.com/search?q=[c]+string+to+int –

ответ

6

Проверьте strtol() и strtoul().

Вы хотите избежать atoi(), поскольку у него нет хорошего способа различать строку «0» и недопустимое число.

+0

У strtol есть 3 аргумента, где strtoul имеет 2, что я должен в них входить? – itsaboutcode

+0

Хорошо спасибо, я понял, могу ли вы сказать мне функцию, которая может конвертировать строку в float? – itsaboutcode

+0

'strtod()' - проверить http://linux.die.net/man/3/strtod – pmg

0

Да. atoi является базовым с очень ограниченной возможностью обработки ошибок; strtol - лучший.

0

Существует также sscanf().

+0

К сожалению, 'sscanf' не предлагает защиты от переполнения. «strto ...» - единственное решение в этом случае. – AnT

Смежные вопросы