1. strcpy是字符串拷贝函数,原型:
char *strcpy(char* dest, char* src);
从src逐字节拷贝到dest,直到遇到’\0’结束,因为没有指定长度,可能会导致拷贝越界,造成缓冲区溢出漏洞,安全版本是strncpy。
2. strlen是计算字符串长度的函数,返回从开始到’\0’ 之间的字符个数。
3.例题
在上下文及头文件均正常的情况下,若有以下定义和语句:
char s1[] = "12345",*s2 = "1234";
printf("%d\n", strlen(strcpy(s1, s2)));
则输出结果是多少?
字符串是以\0结束的,所以其实从s2复制到s1中的内容为"1234\0",此时s1[]=“1234”;strlen()是计算字符串长度,遇到‘\0’就结束,所以strlen(s1)=4。