请教一个函数传递问题

hba 2002-03-26 09:10:07
我写了一个函数
void witsun(LPCTSTR name)
{
if (name="aaa_111")
{
DoSomething1();
}
else if (name="bbb_222")
{
DoSomething2();
}
...
}

但我用时
int main(...)
{
LPCTSTR A="aaa";
LPCTSTR B="111";
LPCTSTR C;
char* c = new char[strlen(A)+strlen(B)+1];

strcpy(c,A);
strcpy(c+strlen(A),"_");
strcpy(c+strlen(A)+1,B);

C=c;


witsun(C); //这样不能运行到"DoSomething1()",但C这时就是"aaa_111"

////但如用下方法可以
LPCTSTR D="aaa_111";
witsun(D); //这时就可以运行到"DoSomething1()"

}


就这个问题,不知是为什么?
...全文
37 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hba 2002-03-26
  • 打赏
  • 举报
回复
问题搞定:)
cvip11 2002-03-26
  • 打赏
  • 举报
回复
if (name="aaa_111")
应该是
if(name=="aaa_111")

???


supperapplication 2002-03-26
  • 打赏
  • 举报
回复
老大,是谁告诉你这样判断2个字符串的,要用strcmp().
wuzhibiao 2002-03-26
  • 打赏
  • 举报
回复
字符窜的长度,还包括了结束付的,那就是说多了一个字节,应该
strcpy(c+strlen(A)-1,"_");
strcpy(c+strlen(A),B);
不知道对不对:)

hba 2002-03-26
  • 打赏
  • 举报
回复
对不起,上面的是“name=xxx_xxx”是错的。是“name==xxx_xxx”

发帖子时写错了:)
lingg2002 2002-03-26
  • 打赏
  • 举报
回复
strcpy(c+strlen(A),"_");
strcpy(c+strlen(A)+1,B

改为strcat(c,"_");
strcat(c,B)
strcpy返回是带结束符
ahao 2002-03-26
  • 打赏
  • 举报
回复
你少分配了一个字节
另外,witsun()是你现在随手写的吧??

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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