常见函数strlen、strcmp、strstr原型实现

数组元素的结束符为'\0',串的结束符为NULL

 

一、strlen

 

#include <iostream>

using namespace std;

 

long h_strlen(constchar*str){

    assert(str!=NULL);    

   const char *s = str;

   while (*s++);        

   return (s - str - 1);

}

 

int main(int argc, const char * argv[])

{

   char s1[] = "hello";

   char s2[] = "123";

    

   int s1_len = h_strlen(s1);

   int s2_len = h_strlen(s2);

   printf("s1_len:%d\n",s1_len);

   printf("s2_len:%d\n",s2_len);

}

 

二、strstr

 

// 在字符串s1中寻找字符串2,若找到返回位置,否则返回Null

 

char *h_strstr(char*str,char *subStr){

    while (*str !='\0') {

       char *p = str;

       char *q = subStr;

       char *res =NULL;

       if (*p == *q) {

           res = p;

           while (*q !='\0' && *p == *q){

               p++;

               q++;

           }

           if (*q =='\0')

               returnres;

       }

       str++;

    }

}

 

 

二、strcmp

 

long h_strcmp(constchar *src,constchar *dst){

    assert(src != NULL&& dst != NULL);

    while (*src && *dst && (*src ==*dst)) {

       src++;

       dst++;

    }

    return (*dst - *src);

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值