0

所以我要做的是一个字符数组,例如“hello world!32 is 32time ...”我需要检查每个位置并确定它是char int类型还是运算符。我知道我可以使用 switch 语句来做到这一点,并创建一个基于类型输出数字的函数。但是我想知道是否有更聪明的方法来做到这一点,最终节省空间和时间。

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

4

2 回答 2

0

您是否正在寻找函数 isalnum、isalpha、isascii、isblank、iscntrl、isdigit、isgraph、islower、isprint、ispunct、isspace、isupper、isxdigit?

于 2013-06-05T20:27:24.313 回答
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循环。

于 2013-06-05T20:31:35.657 回答