Проверка числа, представленного в виде строки в C - PullRequest
2 голосов
/ 30 марта 2011

Я хотел бы проверить, является ли число больше 0.

0 в строковом формате

Как мне либо

  1. Сравните значение со строковым представлением 0
  2. Приведите строку к int

Ответы [ 5 ]

5 голосов
/ 30 марта 2011
2 голосов
/ 30 марта 2011

Другие ответы предлагают вам способ преобразования числа в целочисленный тип данных для выполнения сравнения, что является лучшим общим решением (и что я бы использовал в первую очередь), но в этом случае мы можем обмануть:

  1. Пропускать начальные пробелы в строке.
  2. Если первый символ - '-', это отрицательное число и оно меньше нуля.Вернуть ложь.Если символ является '+', пропустите его.
  3. Пропустите любые начальные '0' символы.
  4. Если следующий символ - это цифра, отличная от '0', вы получитеположительное число, которое больше нуля.Верните true.
  5. Если следующий символ - '.', пропустите его и повторите шаги 3-4.
  6. Если вы попали сюда, то все цифры были равны нулю.Ноль не больше нуля, поэтому верните false.

Конечно, если вам нужно (или вы ожидаете) сделать больше, чем сравнить строку со значением, продолжайте и конвертируйте ее с вашим любимымвариация strtol.

2 голосов
/ 30 марта 2011

atoi() преобразует строку в целое число.

0 голосов
/ 30 марта 2011

если это hw, ваш учитель, скорее всего, захочет использовать символ за символом, поэтому возьмите значение ascii и вычтите из него '0'.

Если оно длиннее одной цифры, выберите символchar, беря результат и умножая его на 10 ^ i, и добавляя его к общей сумме

* i - это i-й символ

0 голосов
/ 30 марта 2011

Рассмотрим функции strtoul() или atoi() в libc для преобразования строки в целое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...