不知是简单还是难的问题

hansonboy 2002-05-08 09:50:59
怎样把一个字符串转换成一个变量名称?
...全文
38 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hansonboy 2002-05-12
  • 打赏
  • 举报
回复
谢谢
liem 2002-05-11
  • 打赏
  • 举报
回复
下面程序在TC++3.0下通过
#include <iostream.h>
#include <string.h>
struct SimuVar
{
char name[20];
int value;
struct SimuVar *next;
};

SimuVar *head=0;

void init()
{
head=new SimuVar;
strcpy(head->name," ");
head->value=0;
head->next=0;
}
int &v(const char *sname)
{
SimuVar *p,*temp;
temp=head;
p=head->next;
while(strcmp(p->name,sname)<0&&p!=0)
{temp=p;p=p->next;}
if(0==strcmp(p->name,sname))return p->value;
p=temp;
temp=new SimuVar;
strcpy(temp->name,sname);
temp->value=0;
temp->next=p->next;
p->next=temp;
return temp->value;
}
void main()
{
init();
cin>>v("b")>>v("a");
v("a1")=v("a")+v("b");
cout<<v("a1")<<endl;
v("a1")++;
cout<<v("a1")<<'\t'<<++v("a")<<endl;
}
晨星 2002-05-08
  • 打赏
  • 举报
回复
当然,liem(阿明)的办法最好。
晨星 2002-05-08
  • 打赏
  • 举报
回复
指针也一样呀,把原来的delete掉,再new一块新的,不就是另外一个变量了吗?
晨星 2002-05-08
  • 打赏
  • 举报
回复
数组不就可以看作是动态变量名吗?只需一个动态的、不同的下标,就可以表示不同的变量。
tokens 2002-05-08
  • 打赏
  • 举报
回复
ziqiriying(紫气日盈),你要搞清楚MFC是怎么用的。。
他做成的可不是变量了 。。。只是一个宏而已。。
zhima2000 2002-05-08
  • 打赏
  • 举报
回复
楼上的试一下再说好不?
等....
liem 2002-05-08
  • 打赏
  • 举报
回复
直接变成一个变量大概不行,但我想是否可以考虑使该字符串看起来象变量。
建立一个结构体成员有:name,value,及有关指针
将结构组成一个查找树(按name)
建立一个返回结构体中相应name的value引用的函数(如果该name不存在,则将其放入树中)
由于引用可以作左值,因此看起来有点象变量。
这是我的一些想法,具体还没有实现。不知各位认为如何?
hansonboy 2002-05-08
  • 打赏
  • 举报
回复
我想也是不行的
cycker 2002-05-08
  • 打赏
  • 举报
回复
说一下,可以吗?
ziqiriying 2002-05-08
  • 打赏
  • 举报
回复
没有办法动态转
只能使用RTTI
可以参考MFC的做法

tokens 2002-05-08
  • 打赏
  • 举报
回复
变量名称是你写程序的时候已经定下来的啦。。
以后怎么可以用字符串做变量呢???这是不可行的。
hansonboy 2002-05-08
  • 打赏
  • 举报
回复
谁有试过可以给点代码来看看

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧