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 }
  • 相关阅读:
    如何解决UITextField挡住键盘的问题
    设置UITextField中能输入的最大的字数
    如何判断IOS的设备版本型号
    IOS中如何实现对话聊天
    精美的iOS图片欣赏
    关于IOS 应用图标的设置
    ios7中添加多个按钮
    elementary0.4:快速配置工具
    elementary:网易云音乐白条解决
    deepin下eclipse快捷方式
  • 原文地址:https://www.cnblogs.com/jianghg/p/4417189.html
Copyright © 2011-2022 走看看