0

对不起标题。随意将其编辑为更清晰的内容。

我有一个字符串,我必须检查该字符串的第一个字符是否等于其他给定字符之间的至少一个字符,例如 B、Z 和 K(在我的情况下,我有大约 10 个字符要检查,但它们不是可归类为一个范围)。

我正在按如下方式进行检查。

if (string[0] == 'Z' || string[0] == 'K' || string[0] == 'B') {
   /* do something... */
}

有没有更简单的方法呢?

4

4 回答 4

10

一种可能的方法是在字符串中列出您的目标字符并使用strchr

const char* matches = "ZKB...";
if (strchr(matches, string[0]) != NULL) {
    /* do something */
}
于 2013-04-19T16:28:36.153 回答
2
#include <string.h>

char* test = "ZKB";
if (strchr(test, string[0]) != NULL)
{
  // do stuff
}
于 2013-04-19T16:30:31.167 回答
0

将所有要比较的字符放在一个字符串中,然后将字符串的第一个字符存储在另一个字符串中,然后执行以下操作 strstr("firstChar","compareset"); 如果它返回 null 这意味着字符串的第一个字符不是来自集合

于 2013-04-19T16:48:36.323 回答
-1

如何创建一个数组来存储将要检查的字符...例如,如果它们在给定的第一个字符串中,则检查 A、B、C、D 这 4 个字符。然后写一个函数:

int check_first(char *s,char *t){ //string s is given,string t is chars which
                                  // will be checked.
    while(*t++ == *s){//You should leave 1 more byte in array to store '\0'
        return 1;
    }
    return 0;
}
于 2013-04-19T16:37:53.287 回答