使用cpp / c ++中的字符串值数据声明变量名称

时间:2012-06-25 04:09:50

标签: c++ c variables declaration

例如,假设您从某处提取数据并将其放入字符串变量中,然后您希望将其中的数据用作另一个字符串名称:

int main(void){

   string strVar ="StringData"; //this is a string variable with text inside 

   cout<<strVar<<endl;    //displaying the variables contents


   string strVar.c_str() = "stuff in string variable 'StringData'"; //this uses what was inside of strVar to be the name of the new string variable

   cout<<StringData<<endl; //prints the contents of the variable StringData (who got its name from the data inside of strVar
}

//OUTPUT:
StringData
stuff in string variable 'StringData'

我知道你绝对不能以这种方式做到这一点,在这个例子中你必须事先知道在使用变量StringData之前strVar中的内容,但我们理论上可以这样做吗?

编辑:

谢谢大家,所以我从你们这里得到的基本上是不可能的,C ++不是一个动态变量语言,而我能得到的最接近的是     map(字符串,字符串)

4 个答案:

答案 0 :(得分:2)

没有任何明确的想法,但也许你对std::map感兴趣?听起来像你想要的是一个Key-Value配对。

std :: Map的参考 - &gt; http://www.cplusplus.com/reference/stl/map/

示例:

#include <map>
#include <string>
#include <iostream>
using namespace std;

int main(void)
{
    map<string, string> myMap;
    myMap.insert(pair<string, string>("StringData", "Stuff in StringData"));

    // Get our data
    cout << myMap["StringData"] << endl;

    return 0;
}

答案 1 :(得分:0)

变量名仅在C ++的编译时存在。你最接近的是使用带有字符串键的地图。

答案 2 :(得分:0)

我不确定你在问什么,但如果你想拥有“动态”变量名,那么你就不能直接在代码中这样做。您必须使用一些map-type数据结构。如果可以使用标准库,请查看std::hash_setstd::map

答案 3 :(得分:0)

语言,您可以在其中动态创建变量。 C ++不是其中之一;)