常见函数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 必须有足够 ...
随机推荐
- 基于Jquery的商城商品图片的放大镜效果(非组件)
在开发商城的时候,往往会用到图片的放大功能,这里把自己在近期项目中使用的放大镜特效做一下总结(非插件). 放大镜效果 常用的js组件jquery.imagezoom,jquery.jqzoom,jqu ...
- github 客户端总是登录失败,提示密码错误
把输入法调成英文即可!!
- Struts2,get/set 自动获取/设置数据ActionSupport 类
主页:http://struts.apache.org/在用户请求和模块化处理方面以及页面的展现这块,Struts2 发挥了强大的作用:相对于传统的Jsp+Servlet 模式,Struts2 更适合 ...
- sql执行效率 Explain
explain+sql语句 explain返回的结果项很多,这里我们只关注三种,分别是type,key,rows. key:显示MySQL实际决定使用的键(索引).如果没有选择索引,键是NULL. r ...
- NOIP试题解析
NOIP试题解析 by QTY_YTQ noip2010关押罪犯(并查集) 题意是有n个罪犯关在两个监狱中,其中有m对罪犯有仇恨关系,如果有仇恨的罪犯关在一起会产生一定影响力的事件 ...
- Quotes
A man's gotta do what a man's gotta do.
- cmake 版本升级
1.在网址 https://cmake.org/files/v3.1/下载 cmake-3.1.0.tar.gz 2.解压 3.执行 ./configure 4.执行 make 5. 执行 ...
- Mysql 数据库备份工具 xtrabackup
1.安装测试数据库mysql5.7 详细步骤 yum install -y gcc gcc-c++ cmake bison ncurses-devel .tar.gz cd mysql-/ cmake ...
- POJ3983 快算24
很正常的题目,迷一样的答案. 测试数据只有一组,对没错只有一组. #include<cstdio> int main() { printf("5*(5-(1/5))\n" ...
- Extension Methods "点"函数方法 扩展方法
原文发布时间为:2011-03-25 -- 来源于本人的百度文章 [由搬家工具导入] http://msdn.microsoft.com/en-us/library/bb383977.aspx 条件: ...