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;
}
一键三连呀!