常见函数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);
}
常见函数strlen、strcmp、strstr原型实现的更多相关文章
- C语言中strcpy,strcmp,strlen,strcat函数原型
		//strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, const char ... 
- 写出完整版的strcpy函数及其他如:strcat,strcmp,strstr的函数实现
		(---牛客网中刷题---)写出完整版的strcpy函数 如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案: 2分 1 2 3 4 void strcpy( char *st ... 
- C-基础:详解sizeof和strlen,以及strstr
		sizeof和strlen (string.h) 先看几个例子(sizeof和strlen之间的区别): (1) 对于一个指针, char* ss ="0123456789"; ... 
- 面试题:实现strcpy,strlen,strcmp,strcat,memcpy 之c-style字符串
		哪里可以看到c库函数的源码? gnu的c运行库glibc,但是源码的实现却是复杂的,需要考虑效率,stlen源码分析. c-style字符串有个约定,以空字符结尾,即 '\0' . ' }; &quo ... 
- C语言实现strcat / strlen / strcmp / strcpy
		主要考虑两点: 返回值对使用的便利性. 边界,null的判断. strcat char *m_strcat(char *des, const char *src) { assert((des != N ... 
- c/c++面试题(3)strcat/strcmp/strlen/strcpy的实现
		1.编写一个函数实现strlen以及strcpy函数. strcpy函数. 后面的字符串拷贝到一个字符数组中,要求拷贝好的字符串在字符数组的首 地址,并且只拷贝到'\0'的位置.原型是 char* m ... 
- 转:strcat与strcpy与strcmp与strlen
		转自:http://blog.chinaunix.net/uid-24194439-id-90782.html strcat 原型:extern char *strcat(char *dest,cha ... 
- strcpy/strlen/strcat/strcmp面试总结
		<strcpy拷贝越界问题> 一. 程序一 #include<stdio.h> #include<string.h> void main() { char s[]= ... 
- strcpy/strlen/strcat/strcmp的实现
		一.字符串拷贝strcpy 函数strcpy的原型是char* strcpy(char* des , const char* src),des 和 src 所指内存区域不可以重叠且 des 必须有足够 ... 
随机推荐
- 【转】UGUI VS NGUI
			原文:http://gad.qq.com/college/articledetail/7191053 注[1]:该比较是基于15年-16年期间使用NGUI(3.8.0版本)与UGUI(4.6.9版本) ... 
- Pointcut is not well-formed: expecting 'name pattern' at character position 53
			报错内容: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataso ... 
- hihoCoder offer 收割练习赛 74B 取球游戏
			Observations 存在取球策略使得每个四连通块可以只剩一个球:保证取走一个球后仍然是个四连通块. 定义新的[相邻]关系:两球在同一行中且所在行中二者之间无其他球,或者两球在同一列且所在列中二者 ... 
- [SCOI2007][bzoj1070] 修车 [费用流]
			题面 传送门 思路 我们考虑某个工人修车的从前到后序列如下: ${W_1,W_2,W_3,...,W_n}$ 那么,对于这n辆车的车主而言,他们等候的总时间为: $\sum_{i=1}^{n}W_i\ ... 
- Python之面向对象:方法
			一.类的三种方法 1.实例方法 def func(self): 由对象调用:至少一个self参数:执行普通方法时,自动将调用该方法的对象赋值给self: 只能通过实例调用 2.静态方法 @stat ... 
- golang深坑记录
			go深坑:1.gin.context.JSON,如果没有make数组时,数组返回为null,make后,数组为[]2.json.Number转int64类型 datatemp.(json.Number ... 
- KMP--君住长江头,我住长江尾,日日思君不见君,共饮长江水
			POJ 3461: Oulipo 题意: 求出第一个串在第二个串中的出现次数... 分析: KMP板子题... 代码: #include<algorithm> #include<io ... 
- SQL触发器的使用及语法
			原文发布时间为:2010-08-07 -- 来源于本人的百度文章 [由搬家工具导入] ===以下转qsfwy.javaeye.com/blog/424789定义: 何为触发器?在SQL Server里 ... 
- spingboot 邮件模板发送;
			<!-- 邮件start --><dependency> <groupId>javax.mail</groupId> <artifactId> ... 
- github 获取repo 发布的版本号
			获取最新版本 https://api.github.com/repos/nickchou/paopao/releases/latest 获取版本列表 https://api.github.com/re ... 
