在C中进行类型检查

时间:2018-10-16 23:23:32

标签: c types

我正在编码以下if语句:

if(chars[a]== char)
{
  do sth;
}

我的目的是测试chars数组中的元素是否为字符,如果是,请对其进行操作。在Python之类的语言中,有用于查找数据类型的类型函数。 C没有那些。在这种情况下,如何在C语言中执行上述操作?

3 个答案:

答案 0 :(得分:2)

字符数组中的所有项目均为char类型。也许您的意思是检查它们是否为可打印字符,在这种情况下,您可以使用if (isprint(char[a])) {...}

isprint()与其他字符类测试一起在<ctype.h>中定义。

根据您的评论,您似乎在寻找isalnum()

答案 1 :(得分:1)

正如在其他地方观察到的,char数组中的任何内容都是char。如果要查看字母或字符,请查看isdigit()和isalpha()。

有一个C'ism:如果您想知道列表中是否有字符,请说“ asdfjkl”即可运行

{
    "type": "received",
    "time": "2014-11-09T08:19:27.028459Z",
    "product_id": "BTC-USD",
    "sequence": 12,
    "order_id": "dddec984-77a8-460a-b958-66f114b0de9b",
    "funds": "3000.234",
    "side": "buy",
    "order_type": "market"
}

如果找不到字符,strchr函数将返回null。在这种情况下,您不必关心哪一个匹配,即使列表中有匹配项,也请检查if(strchr("asdfjkl",chars[a]) != NULL ) { oneOfThem(); } 。如果您是极简主义的程序员,则也可以输入!= NULL来执行相同的操作。

答案 2 :(得分:0)

C是一种静态类型的语言。保证在运行时声明为某种类型的任何变量都是该类型。