📌  相关文章
📜  检查给定字符串是否为关键字的C程序(1)

📅  最后修改于: 2023-12-03 15:26:49.208000             🧑  作者: Mango

检查给定字符串是否为关键字的C程序

在C语言中,关键字是指被用作语言特定用途的保留字。在编写程序时,我们需要检查输入的字符串是否为关键字,以免产生错误。本篇文章将介绍如何编写一个C程序来检查给定字符串是否为关键字。

步骤
  1. 首先,我们需要定义一个包含所有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"};
  1. 接下来,定义一个函数来检查给定字符串是否为关键字。我们可以使用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;
}
  1. 最后,我们可以在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()函数来比较字符串,同时使用了一个包含所有关键字的字符串数组。程序可以方便地被其他程序员调用,以判断任意给定字符串是否为关键字。