c++如何合并字符数组char*而且不影响到合并之前的字符串

AB两个字符串,在c++中合并后,AB两个都是合并后的结果,我想通过复制来解决,使用strcpy把A复制给C,但是实际上是把A的指针给了C,对A改变了C也跟着改变了,怎么... AB两个字符串,在c++中合并后,AB两个都是合并后的结果,我想通过复制来解决,使用strcpy把A复制给C,但是实际上是把A的指针给了C,对A改变了C也跟着改变了,怎么解决呢?我想要的效果是有个字符串A,我要用他多次,第一次和一个字符串合并成B,第二次和另一个字符串合并成C,实际效果是第二次合并的时候的A其实已经变成和B合并后的字符串了 展开
 我来答
zy1404
2014-01-07 · TA获得超过1387个赞
知道小有建树答主
回答量:784
采纳率:100%
帮助的人:477万
展开全部
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a,b,c,d;
cout<<"输入字符串a"<<endl;
cin>>a;
cout<<"输入字符串a"<<endl;
cin>>b;
cout<<a+b<<endl;
cout<<b+a<<endl;
return 0;
}

刷新①丅5e6
推荐于2017-12-16 · TA获得超过4333个赞
知道大有可为答主
回答量:1499
采纳率:64%
帮助的人:603万
展开全部
#include <iostream>

using namespace std;

void CreateNewStr(const char *src1, const char *src2, char *dest);

int main()
{
char *a = "aaa";
char *b = "bbb";
char *c = "ccc";

//计算新字符串的字节数:3+3+1,1是指字符串结束符\0
int newStrLen = strlen(a) + strlen(b) + 1;
char *ab = (char *)malloc(sizeof(char) * newStrLen);
CreateNewStr(a, b, ab);
cout<<ab<<endl;

newStrLen = strlen(ab) + strlen(c) + 1;
char *abc = (char *)malloc(sizeof(char) * newStrLen);
CreateNewStr(ab, c, abc);
cout<<abc<<endl;

free(abc);
abc = NULL;
free(ab);
ab = NULL;

system("pause");
return 0;
}

void CreateNewStr(const char *src1, const char *src2, char *dest)
{
while(*src1 != '\0')
{
*dest = *src1;
src1++;
dest++;
}
while(*src2 != '\0')
{
*dest = *src2;
src2++;
dest++;
}
*dest = '\0';
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2014-01-07 · TA获得超过8611个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3493万
展开全部
chat tmp[] = "tstr"; // 原串
char astr[60]; // 
char bstr[60] = "bstr";
char cstr[60] = "cstr";
strcpy(astr,tmp); // 获取原串备份
strcat(astr,cstr); // 串拼接,astr变了,但tmp未变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chujiangke001
2014-01-07 · TA获得超过1605个赞
知道小有建树答主
回答量:1352
采纳率:0%
帮助的人:698万
展开全部

#include<iostream>

#include<cstring>

#include<string>

using namespace std;

int main()

{

  char a[100]="aaaaaaa";

  char b[100]="bbbbbbb";

  char c[100]="ccccccc";

  char temp[100];

  strcpy(temp,a);

  strcat(temp,b);

  cout<<temp<<endl;

  return 0;

}


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
菜刀撒
2014-01-07 · TA获得超过313个赞
知道小有建树答主
回答量:487
采纳率:0%
帮助的人:278万
展开全部
你这问题 说的 糊里糊涂的
strcpy 是字符串的复制
strcpy(B,A);把A复制给B
strcpy(C,A);;把A复制给C

而strcat是字符串拼接
strcat(A,B)就是把b连接到A后面
追问
追问不让发代码,一发就说字数多了,代码都发不了,缩减一下如下。。。。
fp="male";
char* i= strcpy(i,fp);
imagejson = std::strcat(i, "_image.json");
char* a= strcpy(a,fp);
actionjson = std::strcat(a, "_action.json");
你给fp赋值然后调试就懂我的意思了
追问字数完了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式