📅  最后修改于: 2023-12-03 15:26:49.208000             🧑  作者: Mango
在C语言中,关键字是指被用作语言特定用途的保留字。在编写程序时,我们需要检查输入的字符串是否为关键字,以免产生错误。本篇文章将介绍如何编写一个C程序来检查给定字符串是否为关键字。
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"};
strcmp()
函数将给定字符串与关键字数组中的每个字符串进行比较。int isKeyword(char *str) {
int i, flag = 0;
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"};
for(i = 0; i < 32; ++i) {
if(strcmp(keywords[i], str) == 0) { // 如果找到了给定字符串,返回1表示是关键字
flag = 1;
break;
}
}
return flag;
}
main()
函数中调用上述函数,并根据返回值输出相应的信息。int main() {
char str[50];
printf("请输入一个字符串:\n");
scanf("%s", str);
if(isKeyword(str)) {
printf("%s是一个关键字。\n", str);
} else {
printf("%s不是一个关键字。\n", str);
}
return 0;
}
#include <stdio.h>
#include <string.h>
int isKeyword(char *str) {
int i, flag = 0;
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"};
for(i = 0; i < 32; ++i) {
if(strcmp(keywords[i], str) == 0) { // 如果找到了给定字符串,返回1表示是关键字
flag = 1;
break;
}
}
return flag;
}
int main() {
char str[50];
printf("请输入一个字符串:\n");
scanf("%s", str);
if(isKeyword(str)) {
printf("%s是一个关键字。\n", str);
} else {
printf("%s不是一个关键字。\n", str);
}
return 0;
}
通过上述步骤,我们成功地编写了一个C程序,用于检查给定字符串是否为C语言中的关键字。程序使用了strcmp()
函数来比较字符串,同时使用了一个包含所有关键字的字符串数组。程序可以方便地被其他程序员调用,以判断任意给定字符串是否为关键字。