当前位置: 代码迷 >> C语言 >> [求助]字符串怎么替换?对不起,我再改一下!说的明白些!
  详细解决方案

[求助]字符串怎么替换?对不起,我再改一下!说的明白些!

热度:109   发布时间:2006-03-06 19:28:00.0
[求助]字符串怎么替换?对不起,我再改一下!说的明白些!

求教一个问题,在C里怎么把替换出来的字符串执行了,比如我有个字符串 stre 内容是 "a=strpos;"

我想让这个字符串执行了,等于我执行了 a=strpos;这条语句,能实现吗?麻烦各位拜托了!!

上边的是原话,可能没说清楚,我再说一次吧,呵呵

我的意思是一个文本,里边每行都写着一些配置,比如

begintime=300

begindate=2

......

我现在的做法是用循环取,如果循环变量等于1,那么我就把我定义的begintime变成这个配置文件里的对应数,同理,这么下去,可是这样配置文件越大,写的也越大,我想我在配置文件里已经写清楚begintime=300了,可不可以读出文本以后,把这个“begintime=300”字符串当做我写在程序里的一条语句,我就不用再用循环变量判断了只要一条或者几条语句,把文本里的字符串取出来,然后执行就得,这个意思,哪位能帮帮我,下边说的宏定义不行,因为当你define时已经把后边写死了,我是要循环读出的,所以宏定义我不会弄,有会的帮帮忙,谢谢啦!

kyako 2006-3-7

也许我表达的不好,是这个意思,a是我之前定义的变量,现在我的方法是设置循环变量,事先规定好,如果变量=1那么就把取出来的字符串“a=str"解析,只要后边的str,然后给a,执行的语句是

strcpy(a,"str");

现在我发现这样的变量太多了,我要设置好多case,所以我想有没有方法,直接把a=str执行了!?

就是我在配置文件里第一行直接写strcpy(a,"str");然后我循环取出这个字符串是就自动执行了,有这个接口吗?

我把我原来的程序写上,帮忙看看吧,也许有帮助理解我的需求!(省略了定义部分^-^)

//配置文件是这样写的

a=str1

b=str2

c=str3

这样的配置文件搭配下边的程序,能实现每行读出来,然后把得到的值给变量,但是程序会因为配置文件的行数而越边越大,那么我想如果配置文件变成下边的样子,然后直接替换出来是不是就很简单了

我想最终的配置文件

strcpy(a,"str1");

strcpy(b,"str2");

当然,需要一个方法,把这个字符串执行了,就卡到这不会了,下边是和原始配置文件搭配的程序段

程序段:

fp=fopen(conf,"r");

i=1;

while(fgets(flag,200,fp))
{

if(i ==1)//说明是第1行

{

p1 =(char *)strchr(flag,'=');
p1++;
strcpy(a,p1);

}

else if(i == 2)//说明是第2行

{

p1 =(char *)strchr(flag,'=');
p1++;
strcpy(b,p1);

..........

}

i++;

}

[此贴子已经被作者于2006-3-7 16:42:35编辑过]

搜索更多相关的解决方案: 字符  变量  begintime  strpos  定义  

----------------解决方案--------------------------------------------------------

没人吗?


----------------解决方案--------------------------------------------------------

你可以定义宏定义呀!
#define STRE a=strpos

我是菜鸟说错了,可不要砍我


----------------解决方案--------------------------------------------------------
可以把“a=strpos”一个个字母分开读取吗?
我也是菜鸟
----------------解决方案--------------------------------------------------------
以下是引用zhangjuan在2006-3-6 22:56:00的发言:

你可以定义宏定义呀!
#define STRE "a=strpos"

我是菜鸟说错了,可不要砍我


----------------解决方案--------------------------------------------------------
楼主不是这个意思吧,a=strpos变成字符串了。

----------------解决方案--------------------------------------------------------
a=strpos如果真是字符串我个人认为没有意义。
----------------解决方案--------------------------------------------------------
他没表达清楚
----------------解决方案--------------------------------------------------------
没明白
----------------解决方案--------------------------------------------------------

晕,又没人了吗?这个论坛白天人好少!!


----------------解决方案--------------------------------------------------------
  相关解决方案