strcpy(s1,s2); strcpy函数的意思是:把字符串s2拷贝到s1中,连同字符串结束标志也一同拷贝。如果s2="china",那么s1中存放的是china\0。
在cout<<s1时,结果是china。
strlen函数的意思是测试字符串的实际字符长度,不含字符串结束标志。
sizeof是个运算符,它的结果是字符串在内存中所占的字节大小,要把'\0'算进去。
函数原型一:
char* strcpy(char* a, char* b)
{
while((*(a++)=*(b++)!='0');
return a;
}
void assert( int expression );
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,
然后通过调用 abort 来终止程序运行。
char *strcpy(char *strDest, const char *strSrc);//strDest为目标,strSrc为源
{
assert((strDest!=NULL) && (strSrc !=NULL)); //如果两个为空则不用复制,直接中止
char *address = strDest; //用address指向strDest开始地址
while( (*strDest++ = * strSrc++) != ‘\0’ ) //复制,直到源串结束;
NULL ; //空操作
return address ; //返回strDest开始地址
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
char s1[6]="china";
char s2[3]="ch";
cout<<s1<<endl; //china
cout<<strlen(s1)<<endl; //5
cout<<sizeof(s1)<<endl; //6
strcpy(s1,s2);
cout<<s1<<endl; //ch;
for(int i=0;i<5;++i)
{
cout<<s1[i]<<endl;
}
cout<<strlen(s1)<<endl; //2
cout<<sizeof(s1)<<endl; //6
return 0;
}