对不起标题。随意将其编辑为更清晰的内容。
我有一个字符串,我必须检查这个字符串的第一个字符是否等于其他给定字符之间的至少一个,例如B,Z和K(在我的情况下,我有大约10个字符来检查和它们不属于范围)。
我正在进行如下检查。
if (string[0] == 'Z' || string[0] == 'K' || string[0] == 'B') {
/* do something... */
}
有没有更简单的方法呢?
答案 0 :(得分:10)
一种可能的方法是在字符串中列出目标字符并使用strchr
const char* matches = "ZKB...";
if (strchr(matches, string[0]) != NULL) {
/* do something */
}
答案 1 :(得分:2)
#include <string.h>
char* test = "ZKB";
if (strchr(test, string[0]) != NULL)
{
// do stuff
}
答案 2 :(得分:0)
如何创建一个数组来存储将要检查的字符... 例如,你得到A,B,C,D这四个字符,如果它们在你给你的第一个字符串中。 然后写一个函数:
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;
}
答案 3 :(得分:0)
将所有字符与一个字符串进行比较,然后将字符串的第一个字符存储在另一个字符串中并执行以下操作 的strstr( “firstChar”, “compareset”); 如果它返回null,则表示该字符串的第一个字符不是来自集合