【C++】将字符串转换为相应的函数进行调用

这篇博客探讨了如何在C++中根据字符串来调用相应的函数。首先,通过循环生成函数名字符串,然后利用函数指针实现字符串到函数的映射。实验结果显示这种方法能够成功执行。
摘要由CSDN通过智能技术生成

通过函数名字符串调用相应的函数

  • 循环生成其函数名对应的字符串(spintf函数)
  • 利用函数指针得到相应字符串对应的函数
#include <iostream>
#include <string.h>

using namespace std;  

typedef int (*funcP)(int k);   //定义类型,funcP即为指向函数的指针
											//指向的函数类型与f_1(),f_2(),f_3()的函数类型相同

int f_1(int a)    {return a;}
int f_2(int a)    {return 2*a;}
int f_3(int a)    {return 3*a;}

//输入函数名的字符串,经过字符串比较函数,返回对应函数的引用
funcP getFuncName(char* funcname)
{
    if(strcmp(funcname,"f_1")==0)
    {
         return &f_1;
    }
    else if(strcmp(funcname,"f_2")==0){
         return &f_2;
    }
    else if(strcmp(funcname,"f_3")==0){
         return &f_3;      
    }
    return NULL;
}


int main(int argc, char **argv) 
{
    int k = 1,result;
    char f_name[20];
    char f[5] = "f_";
    for(int i = 1;i<=3;i++)
    {
    	//通过spintf函数将每个函数名拼接起来
        sprint
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值