• STR类函数的学习心得 (1)


    strlen(求字符串长度)

    学习中接触比较多的STR类函数。

    比较基础的方法就是通过计数器来求得字符串长度,代码如下

    1. int my_strlen(const char* str)
    2. {
    3. int count = 0;
    4. assert(str != NULL);
    5. while (*str != '\0')
    6. {
    7. count++;
    8. str++;
    9. }
    10. return count;
    11. }

    其函数实现只需一个参数即可。

    strcpy(字符串的复制)

    strcpy函数也是平常使用较多的函数,其特点就是strcpy函数在执行的时候会把"\0"一起拷贝到目标数组中。验证方法可以是在目标数组中置入较多"#"符号,拷贝少量内容到目标数组能得以体现。

    需要注意的是,在平常使用过程中,一定要保证目标空间足够大,否则程序将会出现错误。

    strcat(字符串的追加)

    strcat函数顾名思义就是在原有的基础上继续追加字符串

    例:arr1[20] = "abcd";

    arr2[]="efg";

    strcat(arr1,arr2);

    其结果显示:arr1 = "abcdefg"

    函数实现需要使用两个参数 目标参数 追加参数

    函数实现如下

    1. char* my_strcat(char* dest, const char* src)
    2. {
    3. char* ret = dest;
    4. assert(dest && src);
    5. while (*dest)
    6. {
    7. *dest++;
    8. }
    9. //追加字符串
    10. while (*dest++ = *src++)
    11. {
    12. }
    13. return ret;
    14. }

    类似的,使用过程中需要注意目标空间的大小是否足够追加.

    strcmp(字符串大小比较)

    strcmp函数比较有意思,它的作用就是比较两个字符串的大小,但要注意的是不是比较字符串的长度,而是比较两个字符串对应位置的字符的ascll码值的大小,如需比较的两个字符ascll码值不同,则直接得出大小而不继续对剩下的字符进行比较。当一直比较到其中一个函数的"\0"时,函数也会停止得出结果。

    其函数实现如下:

    1. int my_strcmp(const char* arr1, const char* arr2)
    2. {
    3. assert(arr1 && arr2);
    4. while (*arr1 == *arr2)
    5. {
    6. if (arr1 == '\0')
    7. {
    8. return 0;
    9. }
    10. arr1++, arr2++;
    11. }
    12. /*if (*arr1 > *arr2)
    13. {
    14. return 1;
    15. }
    16. else
    17. {
    18. return -1;
    19. }
    20. return *arr1 - *arr2;
    21. }

    限于个人水平,实现方式并没有很简洁,有许多可以改进的地方,希望能给各位带来一定的参考价值

  • 相关阅读:
    阿里巴巴、阿里云Java面试题、笔试题(含答案)
    [附源码]java毕业设计新冠疫苗接种预约系统
    File类与IO流相关面试知识(一)
    七、python ConfigParser模块
    智能工厂落地的三种模式,你了解多少?
    【一】1D测量 Measuring——1.1 close_measure()、close_all_measure()算子
    HTML5和HTML的区别
    Unity中Shader纹理的过滤
    【开题报告】基于微信小程序的校园订餐平台的设计与实现
    交换机和路由器技术-35-NAT转PAT
  • 原文地址:https://blog.csdn.net/KIHEAROC/article/details/126196580