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 }
  • 相关阅读:
    核心动画-关键帧动画易混淆属性记录
    CALayer的隐式动画
    const位置上的不同代表哪些不同的意义
    又是一年国庆假期最后一天
    你做微商赚到钱了吗?
    为什么你不看好家教O2O
    【算法】基数排序
    【算法】快速排序/数组第K小的元素
    【算法】归并排序
    【算法】插入排序/冒泡排序/选择排序
  • 原文地址:https://www.cnblogs.com/jianghg/p/4417189.html
Copyright © 2011-2022 走看看