字符串copy函数技术推演
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
//字符串copy函数技术推演
//字符串copy工作
//from形参,to形参的值不断变化(不断from和to的指向)
void copy_str21(char *from,char *to)
{
for( ; *from!='\0'; from++,to++ )
{
*to = *from;
}//不断改变指针的指向
*to = '\0';
return;
}
//*操作 和 ++的操作
//++ 优先级高,但作为后缀,先执行*操作
void copy_str22(char *from,char *to)
{
for( ; *from!='\0'; )
{
*to++ = *from++; //先执行*to = *from; 再执行from++,to++
}//不断改变指针的指向
*to = '\0';
return;
}
//不用手工添加‘\0’
void copy_str23(char *from,char *to)
{
while( (*to = *from) !='\0' ) //执行完表达式(*to = *from)后,该表达式的值即为*to的当前值
{
from++;
to++;
}
}
void copy_str24(char *from,char *to)
{
while( (*to++ = *from++) != '\0' )
{
}
}
void copy_str25(char *from,char *to)
{
while( (*to++ = *from++) )
{
}
}
void main()
{
char *from = "abcdefg";
char buf2[100];
if( !'\0' )
{
printf("%d\n",'\0'); //'\0'的值为0
}
copy_str21(from,buf2);
printf("copy_str21:%s\n",buf2);
copy_str22(from,buf2);
printf("copy_str22:%s\n",buf2);
copy_str23(from,buf2);
printf("copy_str23:%s\n",buf2);
copy_str24(from,buf2);
printf("copy_str24:%s\n",buf2);
copy_str25(from,buf2);
printf("copy_str25:%s\n",buf2);
system("pause");
return;
}