wsgfaust
驱动小牛
驱动小牛
  • 注册日期2002-07-03
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
20楼#
发布于:2002-08-15 14:31
LPTSTR Replacestr(LPTSTR Stringlist,LPTSTR Matchstring,LPTSTR Replacestring)
{

//TCHAR szBuffer[BUFSIZE]; // 假定已经赋值了
LPTSTR SrcString = Stringlist;

LPCTSTR pp = Matchstring;// 要替换的
LPCTSTR ll = Replacestring;// 替换成nchar

while (*SrcString != \'\\0\') //没有到末尾
{
if (*SrcString == *pp)
{
*SrcString = *ll;
break;
}
SrcString++; // 指向下个字符
}
MessageBox(NULL,Stringlist,\"gotit\",MB_OK);

return Stringlist;

}
我稍微修改了一下你的程序,却发现它什么都没有做:(
我爱夏天。
wsgfaust
驱动小牛
驱动小牛
  • 注册日期2002-07-03
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
21楼#
发布于:2002-08-15 14:35
这一条判断语句是无效的
if (*SrcString == *pp)
我爱夏天。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
22楼#
发布于:2002-08-15 14:44
faint,我晕了。。。。这。。这。。这。。
看c语言的书,一定会对你有很大的帮助的。
分清楚char和char string
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2002-08-15 15:08
这是我在C下改的,运行通过,你对照着把char等类型换成TCHAR吧

#define BUFSIZE 256
#include\"windows.h\"
#include\"stdio.h\"
void Replacestr(char * Stringlist,char * Replacechar,char * Mchar,char * replaced)
{
//replaced为替换以后的字符串
char newBuffer[BUFSIZE+1]; // buffer for string

int i=0;
int j=0;
char temp[100];
memset(temp,0,sizeof(temp));
memset(newBuffer,0,BUFSIZE+1);
for( i=0;j<BUFSIZE&&Stringlist!=0;i++ )//注意是<而不是<=

{
strncpy(temp,&Stringlist,strlen(Mchar));//注意这里有i,
//Stringlist(i),我的怎么又显示不出来了
if(strcmp(temp,Mchar)==0)//匹配成功
{
strcat(newBuffer,Replacechar);
j+=strlen(Replacechar);
i+=strlen(Mchar);
}
else
{
newBuffer[j++] = Stringlist;
}
}
//return newBuffer;
strcpy(replaced,newBuffer);
///MessageBox(NULL,Stringlist,\"gotit\",MB_OK);
}

void main()
{
char sourcechar[200];
char replaced[BUFSIZE+1];
memset(replaced,0,sizeof(replaced));
memset(sourcechar,0,sizeof(sourcechar));
strcpy(sourcechar,\"this a dog\");
Replacestr(sourcechar,\"this is \" ,\"this\",replaced);
printf(\"%s\",replaced);

}

运行输出结果是 this is a dog
你可以用其他的验证一下,好像没什么问题,不过一定注意缓冲区长度,避免溢出


你要多看看C,多练练手,这些都很基本 :D

[编辑 -  8/15/02 by  trent]

[编辑 -  8/15/02 by  trent]
我不仅要金子,我还要点石成金的手指!
wsgfaust
驱动小牛
驱动小牛
  • 注册日期2002-07-03
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
24楼#
发布于:2002-08-15 15:26
多谢了,无论如何我以后不问这种问题了。
我爱夏天。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
25楼#
发布于:2002-08-15 15:30
问问周围的人就可以解决的。  ;)
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2002-08-15 15:41
多谢了,无论如何我以后不问这种问题了。



问问题是一个很重要的获取知识的手段,不过要系统的提高自己,还是要看书的,还要多练练,我没别的意思。而且建议多读读别人的代码有好处的 :D :D
我不仅要金子,我还要点石成金的手指!
上一页 下一页
游客

返回顶部