检查在C中表示为字符串的数字

时间:2011-03-30 00:13:01

标签: c

我想检查数字是否大于0。

0是字符串格式

我如何

  1. 将值与字符串表示形式0
  2. 进行比较
  3. 将字符串转换为int

5 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

atoi()会将字符串转换为整数。

答案 2 :(得分:2)

其他答案为您提供了一种将数字转换为整数数据类型以执行比较的方法,这是一种更好的通用解决方案(以及我将首先使用的方法),但在这种情况下我们可以作弊:

  1. 跳过字符串中的前导空格。
  2. 如果第一个字符是'-',则为负数,且小于零。返回false。如果角色是'+',请跳过它。
  3. 跳过任何前导'0'个字符。
  4. 如果下一个字符是不是'0'的数字,则表示您有一个正数,大于零。返回true。
  5. 如果下一个字符是'.',请跳过它并重复步骤3-4。
  6. 如果你到了这里,那么所有的数字都是零。零不大于零,所以返回false。
  7. 当然,如果您需要(或期望)做的不仅仅是将字符串与值进行比较,请继续使用您最喜欢的strtol变体进行转换。

答案 3 :(得分:0)

考虑查看libc中的strtoul()atoi()函数,将字符串转换为整数。

答案 4 :(得分:0)

如果是hw,你的老师很可能想用char去char,所以取ascii值并从中减去'0'。

如果它长于一个数字,则按char去char,取结果并乘以10 ^ i,并将其加到总数

*我是ith char