所以我发生的是一个字符数组,例如" hello world! 32是32时......"我需要检查每个位置并确定它是char int类型还是operator类型。我知道我可以使用switch语句执行此操作,并创建一个根据类型输出数字的函数。然而,我想知道是否有更聪明的方法来做到这一点,最终节省空间和时间。
我也知道strchr(数组,字符),但这又似乎很乏味。是否已经存在一个我可以使用的函数,它将输出一个字符是int char还是oper,或者甚至可能一次检查许多不同的字符。 checkType(array," abcdefgh ....")
答案 0 :(得分:0)
你在寻找函数isalnum,isalpha,isascii,isblank,iscntrl,isdigit,isgraph,islower,isprint,ispunct,isspace,isupper,isxdigit?
答案 1 :(得分:0)
如下:
char *str = "hello world! 32 is 32time"
char *c = str;
while(*c) {
if (isalpha(*c)) {
/* do something */
}
else if (isdigit(*c)) {
/* do something */
}
else if (ispunct(*c)) {
/* do something */
}
else {
/* do something else */
}
c++;
}
请注意,这假设您正在处理以空字符结尾的字符串以退出while
循环。