//将str2中的字符赋给str1,只要str2中的字符不为0循环就一直进行,当str2遇到0时跳出循环体并没有给str1赋0的值,因此循环结束后str1遇到‘\0’才完成
void Mystr1(char *str1,char *str2)
{
int i;
for(i=0;*(str2+i)!='\0';i++) //*(str2+i)==str2[i],以下式子同理
{
*(str1+i) = *(str2+i);
}
*(str1+i) = '\0';
}
//将str1中的字符赋给str2,只要str2中的字符不为0循环就一直进行,str1和str2作为指针变量可以++,当它们是数组的时候不能++
void Mystr2(char *str1,char *str2)
{
while(*str1 != '\0')
{
*str2 = *str1;
str1++;
str2++;
}
*str2 = '\0';
}
//将str3中的字符赋给str1
void Mystr3(char *str1,char *str3)
{
while(*str3 != '\0')
{
*str1++ = *str3++;
}
*str1 = '\0';
}
//这是利用了最简便的方法,利用赋值语句,先进行*str1=*str2,后进行str1++和str2++
void Mystr4(char *str1,char *str2)
{
while(*str1++ = *str2++);
}
int main()
{
char str1[]="hijkl";
char str2[]="abcde";
char str3[]="xyz";
Mystr1(str1,str2);
Mystr2(str1,str2);
Mystr3(str1,str3);
Mystr4(str1,str2);
printf("%s\n%s\n",str1,str2);
return 0;
}