c ++ - isdigit,如何区分字符和数字

时间:2017-03-30 20:03:14

标签: c++

我想检查一下我的数组是否只有数字,我该如何查看?

我尝试这个例子,但这不起作用,我不明白为什么。

int main() {

char* str = new char[9];
cin >> str;




cout << isdigit(str[0])<<endl;


system("pause");
return 0;
}

输入:

1234

输出: 4

我想要的是:

输入: 1234

print:ok

输入:
12FG

打印:不行(因为我的数组中的字符)

我期待着您的帮助和解释

感谢的。

2 个答案:

答案 0 :(得分:1)

试试这个

if(isdigit(str[0]))
  cout << 'ok'
else
  cout << 'not ok'

额外信用1.使用此验证整个字符串

额外学分2.找到另一种方法来验证整个字符串(有很多)

额外的信用3.更难,找出你为什么得到&#39; 4&#39;来自isdigit(str[0])

答案 1 :(得分:1)

尝试这样的事情:

const char *s = "1234";

while (isdigit(*s)) s++;
const char *result = (*s) ? "not ok" : "ok";