c语言用户不同命令调用不同函数实现

在C语言中,可以使用结构体(struct)来存储每条命令所涉及到的信息,包括函数名(作为字符串存储)和函数指针等。然后,可以使用一个数组来存储这些结构体实例。为了根据命令触发对应的函数,可以使用字符串比较来查找匹配的结构体,并调用其函数指针。

以下是一个示例代码,展示了如何实现这一点:

cpp 复制代码
#include <stdio.h>
#include <string.h>

// 定义函数类型
typedef void (*FunctionPtr)();

// 定义结构体来存储函数信息
typedef struct {
    char functionName[50];
    FunctionPtr function;
} FunctionInfo;

// 示例函数
void functionA()
{
    printf("Function A called\n");
}

void functionB()
{
    printf("Function B called\n");
}

void functionC()
{
    printf("Function C called\n");
}

int main()
{
    // 定义函数信息数组
    FunctionInfo functions[] = {
        {"functionA", functionA},
        {"functionB", functionB},
        {"functionC", functionC}
    };
    int numFunctions = sizeof(functions) / sizeof(functions[0]);

    // 输入命令
    char command[50];
    printf("Enter function name to call: ");
    scanf("%s", command);

    // 查找并调用对应的函数
    int i = -1;
    for (i = 0; i < numFunctions; i++) {
        if (strcmp(functions[i].functionName, command) == 0) {
            functions[i].function();
            break;
        }
    }

    // 如果没有找到匹配的函数
    if (i == numFunctions) {
        printf("Function not found\n");
    }

    return 0;
}

在这个例子中,我们有一个函数信息数组,其中包含了函数名和指向这些函数的指针。用户可以通过输入函数名来调用相应的函数。

相关推荐
第九序言T6 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
龙亘川7 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人7 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas1008 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
专注仿真9 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy19 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫1210 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心疼你的一切10 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Zwawa11 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
Wang's Blog11 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友