zoukankan      html  css  js  c++  java
  • 字符串操作函数

    时间久了忘了,自己写一遍

    (*¯︶¯*)

    一、strlen 计算字符串长度

    1 size_t mystrlen(const char *s){
    2     assert(s!=NULL);
    3     size_t len=0;
    4     while(*s!=''){
    5         s++;
    6         len++;        
    7     }    
    8     return len;
    9 }

    二、strcpy strncpy 字符拷贝

     1 char * mystrcpy(char *dest,const char *src){
     2     assert(dest!=NULL&&src!=NULL);
     3     char * pdest=dest;
     4     while(*src!=''){
     5         *dest=*src;
     6         dest++;
     7         src++ 8     }  
     9     *dest='';
    10     return pdest;  
    11 }
     1 char *mystrncpy(char *dest, const char *src,size_t n){
     2     assert(dest!= NULL && src != NULL);
     3     char *pdest = dest;  
     4     while(n--&&*src!=''){
     5         *dest=*src;
     6         dest++;
     7         src++;
     8     }
     9     *dest='';
    10     return pdest;      
    11 }

    三、strcat strncat字符追加

     1 char* mystrcat(char *dest,const char *src){
     2     assert(dest != NULL && src !=NULL);
     3     char *pdest=dest;
     4     while(*dest != ''){
     5         dest++;
     6     }
     7     while(*src != ''){
     8         *dest = *src;
     9         dest++;
    10         src++;
    11     }
    12     *dest='';
    13     return pdest;
    14 }
     1 char *mystrncat(char *dest,const char *src,size_t n){
     2     assert(dest != NULL&& src != NULL);
     3     char *pdest=dest;
     4     while(*dest != ''){
     5         dest++;
     6     }
     7     while(n-- && *src != ''){
     8         *dest = *src;
     9         dest++;
    10         src++;
    11     }
    12     *dest = '';
    13     return pdest;
    14 }

    四、strcmp strncmp字符比较

    1 int mystrcmp(const char *s1,const char *s2){
    2     assert(s1 != NULL && s2 != NULL);
    3     while(*s1 != '' && *s2 != '' && *s1 == *s2){
    4         s1++;
    5         s2++;
    6     }  
    7     return *s1 - *s2;
    8 }
    1 int mystrncmp(const char *s1,const char *s2,size_t n){
    2     assert(s1 != NULL && s2 != NULL);
    3     while(n-- && *s1 != '' && *s2 != '' && *s1 == *s2){
    4         s1++;
    5         s2++;
    6     }
    7     return *s1 - *s2;
    8 }

     五、memcpy 内存拷贝

     1 void * mymemcpy(void *dest,const void * src,size_t n){
     2     assert(dest != NULL && src != NULL);
     3     char *pdest=(char *)dest;
     4     char *psrc=(char *)src;
     5     while(n>0){
     6         *pdest=*psrc;
     7         pdest++;
     8         psrc++;
     9         n--;
    10     }
    11     return dest;
    12 }
  • 相关阅读:
    如何判断某个变量是否是数组?
    mac vscode编辑器的快捷键
    vue require.context()动态文件引入
    在vue项目上使用less
    nrm是什么
    对象的扩展方法
    es5严格模式
    微信公众号定位不准问题
    layer使用iframe的路径不对问题
    form表单中reset对js赋值的表单象无法重置问题
  • 原文地址:https://www.cnblogs.com/jiangyu0331/p/11650543.html
Copyright © 2011-2022 走看看