【发布时间】:2012-10-08 05:25:37
【问题描述】:
我有一个字符串,它可能包含0-9 或数学运算符(+, -, *, /) 之间的单个整数。
基本上,我需要读入所有字符/数字。我正在检查字符是 +、-、* 还是 /。如果不是,那么我知道它要么是数字,要么是无效字符。我正在使用 atoi 将其转换为整数。 atoi 在两种情况下都将返回 0:如果整数是 0 或如果它是无效字符。
我还能如何区分?
【问题讨论】:
-
如果您正在处理一位整数,您可以使用
isdigit()来验证它是否是一个数字,如果它既不是数字也不是您的运算符之一(也不是空格,但您可以使用" %c"格式跳过那些——前导空格跳过空白),那么这是一个错误。如果只有一个字符,atoi()和strtol()之类的函数可能会过大。 -
你可以直接先检查是不是。