C++两个字符串的连接,不要使用系统函数

来源:百度知道 编辑:UC知道 时间:2024/05/28 09:25:12
#include < iostream >
using namespace std;
int main ()
{
char a[5], b[5], c[10];
int i, j=0;
cout << " 请输入第一个字符串:\n ";
for ( i=0; i<5; i++ )
cin >> a[i];
cout << " 请输入第二个字符串:\n ";
for ( i=0; i<5; i++ )
cin >> b[i];
i=0;
while( a[i]!=0 )
{
c[i]=a[i];
i++;
}
i=5;//为什么这里要两次申明i=5,有什么方法可以避免。
while( b[j]!=0 )
{
c[i]=b[j];
i++;
j++;
}
cout << " 您输入两个字符串连接为:\n ";
for ( i=0; i<10; i++ )
cout << c[i];
return 0;
}
另外,我想知道怎么样才可以不使用系统函数将两个不知道字符个数的字符串连接在一起!还请高手指教!

恩,是这样:
while( a[i]!=0 )
{
c[i]=a[i];
i++;
}
注意这里a[i]!=0,说明这个最后一位的字符串的ASC码是'\0',表示字符串的结尾。
应该cin一个整串才行。那样的话就不用i=5了;

然后连接,我自己写了一个你看看吧。

#include<iostream>
#define maxn 1000//最长长度
using namespace std;
int main(){
char a[maxn],b[maxn],c[maxn];
int alen,blen,clen,counter;//alen是a的长度,counter计数器
cout<<"请输入第一个字符串"<<endl;
cin>>a;
cout<<"请输入第二个字符串"<<endl;
cin>>b;
alen=strlen(a);
blen=strlen(b);
for(counter=0;counter<alen;counter++)
c[counter]=a[counter];
for(;counter<alen+blen;counter++)
c[counter]=b[counter-alen];
c[counter]='\0';//末尾是字符串结尾
cout<<"您输入两个字符串连接为"<<endl;
cout<<c<<endl;
system("pause");
return 0;
}

输入字符串时