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