原型:
C库string.h中的strlen函数
描述:
C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
参数:
str:要计算长度的字符串。
返回值:
该函数返回字符串的长度。
模拟实现strlen:
第一种:采用计数器
size_t my_strlen(const char *str)
{
size_t count = 0;
assert(NULL != str);
while (*str++)
++count;
return len;
}
size_t my_strlen(const char *str)
{
const char *start = str;
assert(str);
while (*str++)
;
return (str-1-start);
}
第三种:利用递归实现
size_t my_strlen(const char *str)
{
assert(str);
if (*str)
return (1+my_strlen(str+1));
return 0;
}
原型:
C库string.h中的memset函数
描述:
C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符
参数:
str:指向要填充的内存块。
c:要被设置的值,该值以int形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。
n:要被设置为该值的字节数。
返回值:
该值返回一个指向存储区 str 的指针。
模拟实现memset:
void *my_memset(void *str, int c, size_t n)
{
char *pstr = (char *)str;
assert(str);
while (n--)
*pstr++ = (char)c;
return str;
}