如何在函数中转换字符串?

时间:2017-05-09 21:09:23

标签: c++ c++11 c++14

确实我有这段代码:

#include <iostream>

double a(){return 1.23;}
double b(){return 1.21;}

int main(){
std::string function0;
return EXIT_SUCCESS;
}

我想要的是:如果function0 ='a'我希望能够在函数a中转换字符串function0,但我不知道如何做到这一点。如果function0等于b,我想调用函数b。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您要做的是根据字符串变量的值调用其中一个函数。这很容易实现。

  1. if else中的main()构造:

    if (function0 == "a") {
        foo = a();
    } else if (function0 == "b") {
        foo = b();
    }
    
  2. 合并函数并修改结果,因此根据输入的不同,它的行为会有所不同:

    double newFunction (string input) {
         double valueForA = 1.23;
         double valueForB = 1.21;
    
         if (input == "a") {
             return valueForA;
         } else if (input == "b") {
             return valueForB;
         } else {
             //what if it's not "a" nor "b"?
             return 0;
         }
    }
    

    用法:

    double foo = newFunction(function0);
    
  3. N.B:

    1. 不要忽略函数的返回值,如果返回的值不重要,请使用void函数。
    2. 学习使用变量(而不是无用的函数)。你可以在main中创建2个变量,那就是它。
    3. 访问此link以开始使用C ++。没有好的参考资料,你会讨厌学习它,那会很难过,或者会不会?
    4. 停止使用您目前正在使用的图书/网站来学习编程。它(可能)是垃圾。

答案 1 :(得分:-1)

函数指针可能有所帮助。

double (*funcPtr)();
int main() {
  if (function0 == "a")
    funcPtr = &a;
  else 
    funcPtr = &b;

  (*funcPtr)(); //calling a() or b()
}
相关问题