isdigit,如何区分字符和数字

isdigit, how to distinguish between a character and a number

本文关键字:字符 数字 何区 isdigit      更新时间:2023-10-16

我想检查我的数组是否只有数字,如何检查出来?

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

int main() {
char* str = new char[9];
cin >> str;


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

system("pause");
return 0;
}

输入:

1234

输出:四

我想要的是:

输入:1234

打印:确定

输入:
12fg

打印:不正常(因为我的数组中的字符(

我期待您的帮助和解释

谢谢。

试试这个

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

额外学分 1.使用它验证整个字符串

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

额外学分 3.更难的是,找出为什么你从isdigit(str[0])那里得到"4"

尝试这样的事情:

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