C/C++ code#include
#include
#include
const char *keywords[] = {
"auto",
"break",
"case",
"char",
"const",
"continue",
"default",
"do",
"double",
"else",
"enum",
"extern",
"float",
"for",
"goto",
"if",
"int",
"long",
"register",
"return",
"short",
"signed",
"sizeof",
"static",
"struct",
"switch",
"typedef",
"union",
"unsigned",
"void",
"volatile",
"while"
};
int iskeyword(const char *str)
{
int i;
for (i = 0; i < sizeof(keywords)/sizeof(keywords[0]); i++) {
if (!strcmp(str, keywords[i]))
return 1;
}
return 0;
}
int isidentifier(const char *str)
{
int i;
int len;
len = strlen(str);
if (!isalpha(str[0]) && str[0] != '_')
return 0;
for (i = 1; i < len; i++)
if (!isalnum(str[i]) && str[i] != '_')
return 0;
return 1;
}
int main(void)
{
int len;
char word[50 + 1];
while (fgets(word, sizeof(word), stdin)) {
len = strlen(word);
word[len - 1] = '\0';
if (!iskeyword(word) && isidentifier(word)) {
printf("%s: %s\n", word, "yes");
} else {
printf("%s: %s\n", word, "no");
}
}
return 0;
}