首页 > 代码库 > 常见函数strlen、strcmp、strstr原型实现
常见函数strlen、strcmp、strstr原型实现
数组元素的结束符为‘\0‘,串的结束符为NULL
一、strlen
#include<iostream>
usingnamespacestd;
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 =http://www.mamicode.com/=*dst)) {
src++;
dst++;
}
return (*dst - *src);
}
常见函数strlen、strcmp、strstr原型实现