char类型拼接,c

1: char *name1="123"; char *name2="456"; char test[10]; strcpy(test,name1); strcat(test,name2); 方法2: string name1,name2,name3; name1="123"; name2="456"; nam3=name1+name2; char test2[30]; strcpy(test,name3.c_str()); 方法3: char *name1="123"; char *name2="456"; char *name3=new char [30]; // 必须分配空间 strcpy(name3,name1); strcpy(name3,name2);
#include<iostream> #include<string.h> using namespace std; int main() { char a[50],b[50],c[100];//同时定义三个字符数组 char *p1,*p2,*p3;//定义三个字符指针 int i,j,I,J; cout<<"输入字符数组a:"; cin>>a; I=strlen(a); p1=a; for(i=0;i<I;i++)//这句让i从0遍历到I-1,I的值是字符数组中字符个数,不包括结束符。 //结束符 \0 在 a[49] 的位置。除非输入了49个字符,否则它不在所输入字符长度+1的位置 { cout<<*(p1+i); } cout<<endl; cout<<"输入字符数组b:"; cin>>b; J=strlen(b); p2=b; for(i=0;i<J;i++) { cout<<*(p2+i); } cout<<endl; p3=c; for(i=0;i<I;i++)// i从0到I-1 { *(p3+i)=*p1; p1++; } for(j=0;j<J;j++)//j从0到J-1 { *(p3+I+j)=*p2; //已经读入了a中的字符,继续读入b中的字符,指针要从c[I]的位置开始,所以是*(p3+I+j) p2++; } cout<<"拼接后的字符数组"; for(i=0;i<I+J;i++) { cout<<*(p3+i); } cout<<endl; return 0; }