提问:一个字符串替换问题

tangchoice 2003-11-19 03:22:51
有如下字符串:
char* s = "abcdefxy"
我想把其中的"bc"替换成'h',也就是s最终变成"ahdefxy"
如何做?谢谢大家
...全文
49 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangweintk 2003-11-19
  • 打赏
  • 举报
回复
自已做一个函数,返回值为替换后得到的字串,四个参数依次为,从第几个开始(基于0),换几个,源串,要替换的串。
CString MyReplace(int nNo,int nNum,char* nStr1,char*nStr2)
{
CString retu_str;//返回值

CString temp1 = nStr1;//原串
CString temp2 = nStr2;//要替换的串

temp1 = temp1.Delete(nNo,nNum);
temp1 = temp1.Insert(nNo,temp2);
retu_str = temp1;

return retu_str;
}
xqk 2003-11-19
  • 打赏
  • 举报
回复
CString str = "sasttt ss";
int l = str.Find("st",0); //找到第一个替换内容
str.Delete(l,2); //"st"为2字节
str.Insert(l,"new char");
tangchoice 2003-11-19
  • 打赏
  • 举报
回复
谢谢大家的帮助,不好意思,没说清楚
我希望替换指定位置的一个或几个字符
如果用replace()会替换全部,比如 char *s = "adsfff",我用"t"替换"f", replace()后变成了 "adsttt",这不是我所期望的
to: beyondtkl(大龙驹宣言:抵制日货,从我做起)
当然我希望是普遍性的替换
beyondtkl 2003-11-19
  • 打赏
  • 举报
回复
dui 同意楼上。
那就用c的 string的函数 有很多呢。

问楼主:
你是要做普遍性的替换 还是就针对你的这个问题?
xqk 2003-11-19
  • 打赏
  • 举报
回复
strstr
bohut 2003-11-19
  • 打赏
  • 举报
回复
我想楼主可能需要的是不用CString的解决办法
carbon107 2003-11-19
  • 打赏
  • 举报
回复
char* s = "abcdefxy";
CString str;
str.Format("%s", s);
str.Replace("bc", "h");

ok
bohut 2003-11-19
  • 打赏
  • 举报
回复
#include <stdio.h>

#include <string.h>

int main()
{

char s[] = "abcbcbcbcdsbcvbvbc"; //源字符串
for(int i = 0 ; i < strlen(s) ; i++)
{
if(s[i]=='b'&&s[i+1]=='c')
{
s[i] = 'h';
for(int j = i+1 ;j<strlen(s);j++)
s[j] = s[j+1];
}
}
printf("s= %s\n",s); //改变后的字符串
return 0;
}
zhucde 2003-11-19
  • 打赏
  • 举报
回复
一楼的方法已经解决问题了,不过最后是保存在CString的str 中,
如果你想重新变回s,可以:
char *s ="abcdefg";
CString str;
str.Format ("%s",s);
str.Replace ("bc","h");

s=str.GetBuffer(str.GetLength());//这里将值反赋给s,这样s就变回你想要的了
vcforever 2003-11-19
  • 打赏
  • 举报
回复
char* s = "abcdefg";
CString str = s;
str.Replace("bc","h");
Paris_Luo 2003-11-19
  • 打赏
  • 举报
回复

CString str("abcdefxy");
str.Replace("bc","h");
wjiangwin 2003-11-19
  • 打赏
  • 举报
回复
char *p ="abcdefg";
CString str;
str.Format ("%s",p);
str.Replace ("bc","h");

16,551

社区成员

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

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

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