//--《面向对象程序设计与VC++实现》
//--Liwei_2_1
//--字符串基本操作(长度、复制、连接)
//--11/5/2005 Sat. morning 8:00--12:00
//--Computer Lab
#include <iostream>
using namespace std;
int StrLength(char *str);
char *StrCopy(char *str1,char *str2);
char *StrLink(char *str1,char *str2);
int main()
{
char string1[80],string2[80];
cout<<"Please enter string1 and string2:"<<endl;
cin>>string1>>string2;
cout<<"string1 length is:"<<StrLength(string1)<<endl;
cout<<"string2 length is:"<<StrLength(string2)<<endl;
cout<<"string2 copy to string1:"<<StrCopy(string1,string2)<<endl;
cout<<"string1 copy to string2:"<<StrCopy(string2,string1)<<endl;
cout<<"string2 StrLink to string1:"<<StrLink(string1,string2)<<endl;
cout<<"string1 StrLink to string2:"<<StrLink(string2,string1)<<endl;
return 0;
}
int StrLength(char *str)
{
int i=0;
while(*str++!='/0') //此处的指针str是形参,故为一局部变量
i++;
return i;
}
char *StrCopy(char *str1,char *str2)
{
/* //也可以用以下代码实现
int i=0;
for(i=0;i<StrLength(str2);i++)
str1[i]=str2[i];
str1[i]='/0';
return str1;
*/
char *p=str1;;//开始时忘了记下str1的值
while(*str2!='/0')
*str1++=*str2++;
*str1='/0';//表示字符串结束
return p;
}
char *StrLink(char *str1,char *str2)
{
/*
//也可以用以下代码实现
int i,j=0;
for(i=StrLength(str1); (i<StrLength(str1)+StrLength(str2)) && (j<StrLength(str2));
i++,j++)
str1[i]=str2[j];
str1[i]='/0';
return str1;
*/
char *p=str1;
while(*str1!='/0')
str1++;
while(*str2!='/0')
*str1++=*str2++;
*str1='/0';//表示字符串结束
return p;
}