strlen(求字符串长度)
学习中接触比较多的STR类函数。
比较基础的方法就是通过计数器来求得字符串长度,代码如下
- int my_strlen(const char* str)
- {
- int count = 0;
- assert(str != NULL);
- while (*str != '\0')
- {
- count++;
- str++;
- }
- return count;
- }
其函数实现只需一个参数即可。
strcpy(字符串的复制)
strcpy函数也是平常使用较多的函数,其特点就是strcpy函数在执行的时候会把"\0"一起拷贝到目标数组中。验证方法可以是在目标数组中置入较多"#"符号,拷贝少量内容到目标数组能得以体现。
需要注意的是,在平常使用过程中,一定要保证目标空间足够大,否则程序将会出现错误。
strcat(字符串的追加)
strcat函数顾名思义就是在原有的基础上继续追加字符串。
例:arr1[20] = "abcd";
arr2[]="efg";
strcat(arr1,arr2);
其结果显示:arr1 = "abcdefg"
函数实现需要使用两个参数 目标参数 追加参数
函数实现如下
- char* my_strcat(char* dest, const char* src)
- {
- char* ret = dest;
- assert(dest && src);
- while (*dest)
- {
- *dest++;
- }
- //追加字符串
- while (*dest++ = *src++)
- {
- }
- return ret;
- }
类似的,使用过程中需要注意目标空间的大小是否足够追加.
strcmp(字符串大小比较)
strcmp函数比较有意思,它的作用就是比较两个字符串的大小,但要注意的是不是比较字符串的长度,而是比较两个字符串对应位置的字符的ascll码值的大小,如需比较的两个字符ascll码值不同,则直接得出大小而不继续对剩下的字符进行比较。当一直比较到其中一个函数的"\0"时,函数也会停止得出结果。
其函数实现如下:
- int my_strcmp(const char* arr1, const char* arr2)
- {
- assert(arr1 && arr2);
- while (*arr1 == *arr2)
- {
- if (arr1 == '\0')
-
- {
- return 0;
- }
- arr1++, arr2++;
- }
- /*if (*arr1 > *arr2)
- {
- return 1;
- }
- else
- {
- return -1;
- }
- return *arr1 - *arr2;
- }
限于个人水平,实现方式并没有很简洁,有许多可以改进的地方,希望能给各位带来一定的参考价值