模拟实现strlen、strcpy、strcat、strcmp函数
strlen函数
形式:
strlen(字符数组)
功能:
测量字符串的函数,函数的值为字符串中的实际长度(不包括‘\0’在内)
方法1:
设置计数器,遍历字符串
缺点:需要开辟临时空间
方法2:
通过函数递归实现
方法3:
通过指针相减得到字符长度
strcpy函数
形式:
strcpy(字符数组1,字符串2)
功能:
字符串复制函数,将字符串2复制到字符数组1中去
实现:
一般写法:
标准写法:
注意点:
1.返回char* (为了做链式访问)
2.const修饰源地址(const修饰的东西都受到强制保护,防止src中的值被修改)
3.assert断言,提高安全性 (防止对空指针解引用)
4.while()的判断条件,简化程序
strcat函数
形式:
strcat(字符数组1,字符数组2)
功能:
字符串连接函数,把两个字符数组中的字符串连接起来
实现:
注:1.字符数组1必须足够大,以便容纳后面的字符串
2.连接前两个字符串的后面都有‘\0’,连接时将字符串1后面的‘\0’取消,
只在新字符串最后保留'\0'.
形式:
strcmp(字符串1,字符串2)
功能:
字符串比较函数
实现:
注:
字符串比较规则:将两个字符串自左向右按ASCII值比较,直到出现不同的字符或遇到'\0'为止
这些库函数的也可以查看其源代码,比如VS2012中D:\Microsoft Visual Studio 11.0\VC\crt\src