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

#include<iostream>
#include<string>
using namespace std;
int main()
{string string1,string2;
cin>>string1>>string2;
string1=string1+string2;
cout<<"string1="<<string1<<endl;
return 0;
}
这样对吗

这样能满足你的要求,只是他说用string方法不知道是什么意思,如果他说要用cstring头文件有关string的方法的吧,可以这样改下:

#include<iostream>

#include<string>

#include<cstring>

using namespace std;

int main()

{

     string string1,string2;

     cin>>string1>>string2;

     char *dest=new char[string1.length()+string2.length()+1];

     memset(dest,0,string1.length()+string2.length());

     strncpy(dest,string1.c_str(),string1.length());

     strncat(dest,string2.c_str(),string2.length());

     string1=dest;

     cout<<"string1="<<string1<<endl;

     delete dest;

     return 0;

}

结果跟你写的一样:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-25
代码如下看看是否可行?
//连接两个字符串
#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;
}
第2个回答  2013-03-14
目测没有错#include <stdio.h>
void main()
{
char s1[80],s2[40];
int i=0,j=0;
scanf("%s%s",s1,s2); //输入两个字符串
while(s1[i]) //目的是让i指向 第一个字符串的最后位置 '\0'所在位置
i++;
while(s2[j]) //此循环就是将第二字符串内容加到第一字符串最后 直到s2 '\0'
s1[i++]=s2[j++];
s1[i]='\0'; //连接结束后 在最后加结束符
printf("The result is:%s\n",s1);//打印连接后字符串
}
第3个回答  2013-04-09
用append方法
string1.append(string2);

#include <iostream>
#include <string>
using namespace std;
int main()
{
string string1;
string string2;
cout << "input string1:" << endl;
cin >> string1;
cout << "input string2:" << endl;
cin >> string2;
cout << "string1:" << endl << string1 << endl;
cout << "string2:" << endl << string2 << endl;
string1.append(string2);
cout << "string1.append():" << endl << string1 << endl;
return 0;
}本回答被网友采纳
第4个回答  2015-03-25
std::string a= "0123";
std::string b = "4567";
a = a + b;
相似回答