c搜索字符串,如果是字符,int类型,运算符类型

时间:2013-06-05 20:21:58

标签: c++ numbers

所以我发生的是一个字符数组,例如" hello world! 32是32时......"我需要检查每个位置并确定它是char int类型还是operator类型。我知道我可以使用switch语句执行此操作,并创建一个根据类型输出数字的函数。然而,我想知道是否有更聪明的方法来做到这一点,最终节省空间和时间。

我也知道strchr(数组,字符),但这又似乎很乏味。是否已经存在一个我可以使用的函数,它将输出一个字符是int char还是oper,或者甚至可能一次检查许多不同的字符。 checkType(array," abcdefgh ....")

2 个答案:

答案 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循环。