学好库函数的使用,才能让我们从写出更优秀的代码。
今天要介绍的是strlen,strcpy,strcat,strcmp,strstr,atoi。
先来看看标准库中是如何定义的

从标准库中可以看出strlen返回值是size_t,参数是const cahr* string,引用的头文件是
//strlen的使用
#include
#include
int main()
{
char arr[10] = "abcdef";
int ret = strlen(arr);
printf("%d\n", ret);
return 0;
}
strlen计算的是\0之前出现几个字符。
现在我们来模拟实现。
//模拟实现strlen #include'#include int my_strlen(const char* str) { assert(str); int count = 0; while (*str != '\0') { str++; count++; } return count; } int main() { char arr[] = "abcdef"; int ret = my_strlen(arr); printf("%d\n", ret); return 0; } 运行
同样,我们先来看看标准库是如何定义的。

函数引用的头文件是
//strcpy的使用 #include'#include int main() { char arr1[10] = "abcdef"; char arr2[10] = "xxxxxxxxx"; strcpy(arr2, arr1); printf("%s", arr2); return 0; } 运行
strcpy是字符串拷贝,'\0’也会被拷贝,参数返回目标空间的起始地址是为了实现链式访问。接下来我们来模拟实现它。
//模拟实现strcpy #include'#include void my_strcpy(char* str1, const char* str2) { assert(str1 && str2); while (*str2 != '\0') { *str1 = *str2; str1++; str2++; } } int main() { char arr1[10] = 运行