编程牛人,帮忙我写个函数吧!!

int value_exchange(char *sqlstring, char *value, char *username)
{
  //函数体如何实现啊????
}

 value_exchange函数是这样的,参数一:sqlstring是一个带参数的sql语句(update userinfo set email=%v where username=%u) 函数体实现的功能就是用参数二value的值来替换掉sql语句中的%v, 用参数三username的值替换sql语句中的%u。请问一下,函数体里面该如何实现啊? 我刚学编程,折腾了2个多小时了,还没搞出来。大家帮帮忙吧!!

作者: linux_6   发布时间: 2011-03-05

正则如果不会,就取 %v 和 %u 的索引,然后拼装字符串吧

作者: kltwjt   发布时间: 2011-03-05

引用 1 楼 kltwjt 的回复:

正则如果不会,就取 %v 和 %u 的索引,然后拼装字符串吧


晕,我刚学编程,你给我谈这么深的东西,我当然听不懂啊

作者: linux_6   发布时间: 2011-03-05

那么听不懂的你应该怎么办呢?

简单一点吧
获取%v在字串中的第几个位置能否(索引)
有了索引取%v之前的字符串可以么
拼接字符串可以实现么

作者: kltwjt   发布时间: 2011-03-05

你的函数要返回什么东西啊?把你的函数的功能再描述具体一点呗

作者: Levelzero   发布时间: 2011-03-05

C/C++ code

int value_exchange(char ** sqlstring,char * value,char * username)
{
    char * str=(char*)malloc(strlen(*sqlstring)*sizeof(char));
    strcpy(str,*sqlstring);
    int length=strlen(*sqlstring)+strlen(value)+strlen(username)-4;
    char * newstring = (char*)malloc(length*sizeof(char));
    char * pv = strchr(str,'%');
    char * pu = strrchr(str,'%');
    pv+=2;
    *(pv-2)='\0';
    *pu='\0';
    sprintf(newstring,"%s%s%s%s",str,value,pv,username);
    *sqlstring=newstring;
}

作者: rabbii   发布时间: 2011-03-05

大概就是这样吧~

作者: rabbii   发布时间: 2011-03-05

很久没写过程序了,手生,望高人指点。
c的正则俺也没用过,glibc就支持吗?要另外加库不,示例下呗……

作者: rabbii   发布时间: 2011-03-05

引用 4 楼 levelzero 的回复:

你的函数要返回什么东西啊?把你的函数的功能再描述具体一点呗
函数的功能是这样的:


char *sqlstring="update userinfo set email=%v where username=%u ";
value_exchange(sqlstring, "root@163.com", "root");
最后printf出sqlstring的值为: update userinfo set email='root@163.com' where username='root'

现在问value_exchange函数该怎么实现? 应该够清楚了吧

作者: linux_6   发布时间: 2011-03-05

就是字符串操作而已,用strcat,分段添加。

作者: wangtingguang   发布时间: 2011-03-05