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

作者&投稿:陆永 (若有异议请与网页底部的电邮联系)
c++中,编写一个程序,将两个字符串了连接起来,结果取代第一个字符串。要求用string方法。~

代码如下看看是否可行?
//连接两个字符串
#include
#include
#include
#include
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;
}

利用memcpy()函数试一下。。

这样能满足你的要求,只是他说用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;

}

结果跟你写的一样:



代码如下看看是否可行?
//连接两个字符串
#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 <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);//打印连接后字符串
}

用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;
}

std::string a= "0123";
std::string b = "4567";
a = a + b;


用c语言把两个矩阵合为一个矩阵 要求如下
下面是一个可以将两个矩阵合并为一个矩阵的 C 语言程序。该程序中,我们使用了嵌套循环分别遍历两个矩阵,并将它们合并到一个新的数组中。```c include <stdio.h> define ROWS 3 define COLS 3 int main() { char a[ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'...

用指针方案编写一个将两个字符串连接起来的函数,并写出能调用该函数的...
include <stdio.h> include <string.h> int main(){ char s1[40],s2[40],s[80];int len1,len2,i;printf("input string1:\\n");gets(s1);printf("input string2:\\n");gets(s2); len1=strlen(s1);len2=strlen(s2);for(i=0;i<len1;i++)s[i]=s1[i];for(i=0;i<len2;i...

c语言程序设计: 将两个长度相同的一维数组中各下标相同的对应元素相乘...
\/\/这样就可以了,刚写的,如果有疑问,欢迎交流\/\/#include<stdio.h>#define N 5int main(){int a[N], b[N], c[N];int i;for(i = 0; i<N; i++) \/\/输入scanf("%d", &a[i]);for(i = 0; i<N; i++) \/\/输入scanf("%d", &b[i]);for(i = 0; i<N; i++){\/\/...

...程序ShiJian2.java,分别定义两个矩阵,然后将两个矩阵相加,最后将结 ...
仅供参考,可以修改成符合自己的 public class TestMatrix{ public static void main(String[] args){ int[][] a={{1,2,3,4},{5,6,7,8},{9,1,2,3}};int[][] b={{1,2},{3,4},{5,6},{7,8}};int arow=a.length;int bcol=b[0].length;int m=b.length;int[][] c...

编写程序,实现输入两个整数,然后将两个球对调后输出,要求不使用第三个...
main(){int a,b;scanf("%d%d",&a,&b);a+=b;b=a-b;a=a-b;printf("%d %d",a,b);} \/\/可以这样:{ A ^= B;B ^= A;A ^= B;} \/\/这样A和B的值就对调。

怎样用C语言编一个两数相加的程序?
以下是一个简单的示例程序:在上面的程序中,我们首先定义了三个变量:num1、num2和sum。num1和num2用于存储用户输入的两个数字,而sum用于存储这两个数字的和。接下来,我们使用printf函数提示用户输入两个数字,并使用scanf函数将用户输入的值存储到num1和num2变量中。然后,我们使用加法运算符将num1...

用Java 写一个两个整数相加的程序
代码如下:public class Test { public static int add(int a,int b){ return a+b;} public static void main(String args[]){ Scanner scanner = new Scanner(System.in);System.out.println("请输入第一个数");int a = scanner.nextInt();System.out.println("请输入第二个数");int b...

C++编写一个程序,将从键盘输入的两个字符串连接起来,并统计连接好的字符...
想学好编程还是要自己动手,给你一个思路吧 首先,字符串可以看成是一个char型的数组+一个结束符'\\0’,于是就好办了,不用strlen,因为不需要知道长度,我们只要找结束符就好了,输入两个字符串,第一个按下标往后找结束符,找到后,从这里开始将第二个字符串内容copy过来,不知道长度不要紧,也按...

编写一个C++风格的程序,输入两个整数,将它们按由大到小的顺序输出。要求...
"<>a>>b;compare(a,b);return 0;}void compare(int &a,int &b){if(a>b)cout<<"最大值为"<<a<<"最小值为"<<b<<endl;if(a<b)cout<<"最大值为"<<b<<"最小值为"<<a<<endl;if(a==b)cout<<"两个数相等"<<endl;} C++程序是一门广泛用于工业软件研发的大型语言。具有...

如何用一个程序处理两个字符串?
b,m) size(e) % char连接,空字符串会被空格填满 f=char(a,b,m) size(f)strcmp 比较两个字符串是否完全相等,是,返回真,否则,返回假 % strncmp 比较两个字符串前n个字符是否相等,是,返回真,否则,返回假 % strcmpi 比较两个字符串是否完全相等,忽略字母大小写 % strncmpi...

南海区13311531229: 编写程序,将两个字符串连接起来 -
朱符金力: main() { char a[100]; char b[30]; //为什么是100 30 呢 -> 可以根据需要改变长度,但a数组长度最好大于b数组长度,因为a数组要存放连接后的字符串int i,j; gets(a); gets(b);for(j=0,i=strlen(a);b[j]!='\0';i++,j++) //解释 这是什么意思呢?-> 因为要把...

南海区13311531229: 编写一个程序,将两个字符串连接起来?编写一个程序,将两个字符串连
朱符金力: 函数头我就不和你写了! int a[20],b[20],i=0,j=0; while(a[i]!='\0') { i++; } while(b[i]!='\0') { a[i++]=b[i++]; } a[i]='\0'; printf("%s",a); 就可以了!!

南海区13311531229: 编写一个程序,实现两个字符串的连接 -
朱符金力: string3=string1+string2;

南海区13311531229: C语言编程:编一程序,将两个字符串联接起来,不要用Strcat函数. -
朱符金力: 思路:输入两个字符串a和b,首先找到第一个字符串a的结束位置,接着把b的所有元素放到a的末尾,最后加上结束标志. 参考代码: #include<stdio.h> void mystrcat(char a[],char b[]){int i=0,j=0;while(a[i++]!='\0');//找到a的结束位置i--;...

南海区13311531229: C语言编程:5、编一个程序,将两个字符串连接起来,不要用strcat函数. -
朱符金力: 思路:字符串连接先需要找到第一字符串的结束位置,接着把第二字符串元素放到第一字符串后面,最后加上结束标志即可.参考代码:拼接123和456#include<stdio.h> void mystrcat(char a[],char b[]){//字符串连接函数int i=0,j=0; while(a[i++]!='\0...

南海区13311531229: 编写一程序,将两个字符串连接起来,不用strcat函数. -
朱符金力: void main(){ char s1[80],s2[40]; int i=0,j=0; gets(s1); gets(s2); while(s1[i++]!='\0'); i--; while((s1[i++]=s2[j++])!='\0'); printf("%s",s1); }

南海区13311531229: 用c语言编写程序,将两个字符串连接起来,不要用strcat函数 -
朱符金力: #include <stdio.h>#include <string.h> void strc(char c1[],char c2[]); void main() { char s1[30]="abc"; char s2[30]="def"; strc(s1,s2); //请在后面补充strc函数的功能,完成两个字符串的连接 puts(s1); } void strc(char c1[],char c2[]) { //请填空,完成两个字符串的连接 int i,j; for(i = 0; c1[i]; i ++); for(j = 0; c2[j]; j ++) c1[i+j] = c2[j]; c1[i+j] = 0; }

南海区13311531229: 用c语言编写一个将两个字符串连接起来函数两个字符串由主函数输入, 连接后的字符串也由主函数输出. -
朱符金力: #include<stdio.h> void main() {void con(char sting1[],char sting2[],char sting3[]);char s1[20],s2[20],s3[40]; printf("Input sting1: ");scanf("%s",s1);printf("Input sting2: ");scanf("%s",s2);con(s1,s2,s3);printf("%s\n",s3); } void con(...

南海区13311531229: 编一个程序,将两个字符串连接起来,不要用strcat函数,越简单的越好. -
朱符金力: #include int main() { char str1[100],str2[100]; char *p=str1; char *q=str2; printf("please enter str1:"); scanf("%s",str1); printf("please enter str2:"); scanf("%s",str2); while (*p!='\0') //让指针指向p的最后一个 { p++; } while (*q!='\0')//从p指针...

南海区13311531229: C语言问题 编写一程序将两个字符串连起来 -
朱符金力: 一、用strcat函数: #include "stdio.h" #include "string.h" int main(int argc,char *argv[]){char a[100]="abcdefg",b[]="1234567";printf("%s\n",strcat(a,b));return 0; }二、不用strcat函数: #include "stdio.h" int main(int argc,char *...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网