zoukankan      html  css  js  c++  java
  • C语言字符串常见操作-strcpy、strlen、strcat和strcmp实现

    1. 字符串的拷贝strcpy的实现

     1  
     2 
     3 char *myStrcpy(char *dst,char *src)
     4 {
     5     char *ret = dst;
     6     if(dst == NULL || src == NULL)
     7     {
     8         return NULL;
     9     }
    10     while((*dst++ = *src++)!= '')
    11         ;
    12     *dst = '';
    13     return ret;
    14 }

    2.返回字符串长度strlen实现

     1 unsigned int myStrlen(const char *src)
     2 {
     3     // 安全性检查
     4     if(src == NULL)
     5     {
     6         return 0;
     7     }
     8     const char *end = src;
     9     // 返回的是''之前的长度,不把''算在内
    10     while (*end++ != '')
    11         ;
    12     return (unsigned int)(end - src);
    13 
    14 }

    3.字符串连接strcat实现

    注意调用者必须保证dst有足够的空间否则造成内存越界

     1 char *myStrcat(char *dst,const char *src)
     2 {
     3     if(dst == NULL || src == NULL)
     4     {
     5         return NULL;
     6     }
     7     char *ret = dst;
     8     // 将指针指向字符串结尾处
     9     while(*dst != '')
    10         dst++;
    11     // 执行和strcpy一样的操作
    12     while ((*dst++ = *src++) != '')
    13         ;
    14     return ret;
    15 }

    4.字符串比较函数strcmp实现

     1 int myStrcmp(char *strA,char *strB)
     2 {
     3     int val = 0;
     4 
     5     if(strA == NULL || strB == NULL)
     6     {
     7         return val;
     8     }
     9     // 将指针指到不相等处
    10     while ((*strA != '') && (*strB != '') && (*strA == *strB))
    11     {
    12         strA++;
    13         strB++;
    14     }
    15     
    16     // 注 如果不是返回 -1 0 1则此处直接使用 return *strA - *strB 即可
    17     
    18     // 不相等要判断是大于还是小于
    19     if(*strA != *strB)
    20     {
    21         val = *strA > *strB ? 1 : -1;
    22     }
    23     else
    24     {
    25         val = 0;
    26     }
    27     
    28     return val;
    29 }
  • 相关阅读:
    Element + 列表增删改查
    int 型动态数组
    Vue.prototype.$ 和 Vue.use()
    Vue.js生成一个Vue实例
    Element 树形组件
    使用Vuex 实现标签数字增加与减小
    使用指针做形参
    JavaWeb学习之HttpServletRequest
    JavaWeb学习之HttpServletResponse
    JavaWeb学习之Javaweb核心servlet
  • 原文地址:https://www.cnblogs.com/jianghg/p/4417189.html
Copyright © 2011-2022 走看看