求助啊!!如何用一个字符串的值取得相应的变量值。

楼主chzhang513(Christin)2005-12-22 17:51:51 在 C/C++ / C++ 语言 提问

例:char*   className   =   "tableA";  
  className是一个可变的变量,它可以是tableA,也可以是tableB。假设tableA和tableB都是已经定义好的常量,如何根据className的值取得相应tableA和tableB的值。 问题点数:20、回复次数:10Top

1 楼chzhang513(Christin)回复于 2005-12-22 18:01:57 得分 0

有人回答吗?非常急,在线等。Top

2 楼lyz84331()回复于 2005-12-22 18:31:12 得分 0

问题太模糊了,不好理解....  
  不过你只要晓得className存储的是一个字符串地址  
  "tableA"表示的是该字符串的首地址,要解决问题应该不难啊...Top

3 楼wzjall(风)回复于 2005-12-22 18:46:56 得分 0

这个可以,下面只是给你演示一下它的用法.  
  #include<map>  
  #include<string>  
  using   namespace   std;  
  void   main  
  {  
  map<string,int>   m;  
  m.insert(make_pair("wewe",2);  
  int   x=m[wewe];//  
  }Top

4 楼dx30611(mao)回复于 2005-12-22 19:00:31 得分 0

用一个switch语句,看看className与哪个常量相同,返回不同的值  
  再在case中指定你需要的操作Top

5 楼piaochen_2002(执子之手,与子偕老!)回复于 2005-12-22 19:08:55 得分 0

说清楚点Top

6 楼snailbreak(悄悄的来,正如我悄悄的走)回复于 2005-12-22 19:43:35 得分 0

不知道说什么Top

7 楼cunsh(村少)回复于 2005-12-22 20:32:19 得分 0

楼主好像是想把字符串变成标识符的吧?  
   
  似乎是不行的.生成的可执行程序里那些标识符都不存在了.Top

8 楼Bible_Chou(日子在发霉)回复于 2005-12-22 21:08:14 得分 0

不知道LZ要问什么。。。。。。。。。。。。。。。Top

9 楼A_B_C_ABC(黄瓜◥ @^@◤业余爱好而已)回复于 2005-12-23 00:47:47 得分 0

不知道楼主问的是不是这个意思:  
   
  int   tableA=10;  
  float   tableB=20.5f;  
  double   x=0;  
  char*   className=""   ;  
  //......  
  if(strcmp(className,"tableA"))  
            x=tableA;  
  if(strcmp(className,"tableB"))  
            x=tableB;Top

10 楼fine10000(好心情)回复于 2005-12-23 09:02:06 得分 0

常量是在栈中分配的,是有先后的,先定义的地址小,后定义的地址大,你可以考虑一下比较地址实现。  
  Top

你可能对以下的问题也比较感兴趣....