检查c宏中字符串的第一个字符

检查c宏中字符串的第一个字符,c,string,parameters,macros,C,String,Parameters,Macros,我想创建一个宏,检查字符串的第一个字符是否是已定义的字符,宏将被传递一些文本和一个字符,我想检查文本的第一个字符是否是作为字符传递的字符。最干净的方法是什么 #define Check(Text, character) ((CHECK IF THE FIRST SPACE IS THE CHARACTER) ? True : False) 非常简单的方法: #define check(s,c) (s[0]==c) 例如: #include <stdio.h> #define ch

我想创建一个宏,检查字符串的第一个字符是否是已定义的字符,宏将被传递一些文本和一个字符,我想检查文本的第一个字符是否是作为字符传递的字符。最干净的方法是什么

#define Check(Text, character) ((CHECK IF THE FIRST SPACE IS THE CHARACTER) ? True : False)

非常简单的方法:

#define check(s,c) (s[0]==c)
例如:

#include <stdio.h>
#define check(s,c) (s[0]==c)

int main ( )
{
    char * x = "test";
    if check(x,'t')
        printf("ok\n");
}
#包括
#定义检查(s,c)(s[0]==c)
int main()
{
char*x=“测试”;
如果选中(x,'t')
printf(“ok\n”);
}

为什么要在宏中执行此操作?只需编写一个简单的函数来检查第一个字符,并采取适当的行动。@ThaMe90-在预处理期间这样做意味着不必在运行时这样做。运行时执行检查的代码不需要,也不存在,因此它不会失败或被利用:)
#define Check(Text, character) ((charachetr == Text[0]) ? True : False )