c++中,编写一个程序,将两个字符串了连接起来,结果取代第一个字符串。要求用string方法。

如题所述

第1个回答  推荐于2016-03-05
代码如下看看是否可行?
//连接两个字符串
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
char* strcat1(char *strDest , const char *strSrc)//Strcat函数原型如下:将源字符串加const,表明其为输入参数,不会改变其内容
{
//后文return address,故不能放在assert断言之后声明address
char* address=strDest;
assert( (strDest!=NULL)&&(strSrc!=NULL) );//对源地址和目的地址加非0断言
while(*strDest)//是while(*strDest!=’\0’)的简化形式
{
//若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,
//那么strDest将指向'\0'的下一个位置。/所以要在循环体内++;因为要是*strDest最后指
//向该字符串的结束标志’\0’。
strDest++;
}

while(*strDest++=*strSrc++)
{
NULL;//该循环条件内可以用++,
}//此处可以加语句*strDest=’\0’;无必要
return address;//为了实现链式操作,将目的地址返回
}

int main()
{
char a[100],b[100];
scanf("%s",a);
scanf("%s",b);
strcat1(a,b);
printf("%s",a);
return 0;
}追问

有简单的吗

里面有的都没学

基础的

追答

数组学了没?

追问

有一点基础的

追答

//连接两个字符串
#include
#include
#include
void con(char a[],char b[])
{
int str1=0,str2=0,i;
str1=strlen(a);
str2=strlen(b);
for(i=0;i<=str2;i++)
a[str1+i]=b[i];
}
int main()
{
char a[200],b[100];
scanf("%s",a);
scanf("%s",b);
con(a,b);
printf("%s",a);
return 0;
}

本回答被网友采纳