strchr函数的实现而不是使用
2014-08-09 12:07
211 查看
刚刚在写一个程序的时候突然需要用到定位到一个字符串中第一次出现某个字符的位置,于是就找到了strchr()函数,之前从没有用过的,^_^当然我可以直接调用即可,但是拥有良好程序素养的洗衣袋决定要想实现这个函数,其实也没有那么难的哦,循环遍历,直到第一次出现你需要找的字符就结束而已。嘿嘿,稍稍的记录下,以备日后会用到
于是本着学习的态度,出现了如下的代码:
char *mystrchr(const char *s,int c) //返回的是你要找的字符的地址
{
for(; *s != (char)c ; ++s)
{
if(*s == '\0') //说明找完了
return NULL;//找完了还没有,那就直接返回空咯
}
return (char *) s; //我们需要的字符的地址
}
我们可以可以先定义一个字符串然后,我们就可以使用自己的mystrchr()函数啦,
比如查找‘g’ :
puts(mystrchr(字符串地址,'g') ); 由于定义的是int型的,所以我们的字符是以AIISS的形式寻找的,输出的就是从第一个g开始的字符串了
于是本着学习的态度,出现了如下的代码:
char *mystrchr(const char *s,int c) //返回的是你要找的字符的地址
{
for(; *s != (char)c ; ++s)
{
if(*s == '\0') //说明找完了
return NULL;//找完了还没有,那就直接返回空咯
}
return (char *) s; //我们需要的字符的地址
}
我们可以可以先定义一个字符串然后,我们就可以使用自己的mystrchr()函数啦,
比如查找‘g’ :
puts(mystrchr(字符串地址,'g') ); 由于定义的是int型的,所以我们的字符是以AIISS的形式寻找的,输出的就是从第一个g开始的字符串了
相关文章推荐
- 在Atlas服务器端实现中推荐使用Web Service而不是Page Method
- 不是某技术领域的专家,可以带使用该技术实现的项目么?
- 使用递归来实现删除单链表中最后一个节点不是数字‘2’
- 市面上所有号称"虚拟机","防火墙"的实时监控杀毒软件无一不是使用的IFSHOOK技术.但是同时也有一些朋友不断写MAIL给我打听如何实现读写的监控.下面给出用VTOOLSD写的代码.也就是所有实时杀毒软件的奥秘.同时,很多拦截文件操作的软件,例如对目录加
- 使用递归来实现双向链表里删除第一节点不是数字‘2’
- 使用递归来实现在循环链表里删除第一节点不是数字‘2’
- glib中的signal不是异步的,使用g_idle_add实现异步
- windows sdk 实现文件拖拽 不是使用mfc
- .NET中使用js实现百度搜索下拉提示效果[不是局部刷新,呜呜。。]
- 使用递归来实现在ARR里如何删除每一个list的第一个节点不是数字‘2’
- 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(转)
- TDD:先使用你的设计而不是先实现你的设计
- .NET中使用js实现百度搜索下拉提示效果[不是局部刷新,呜呜。。]
- 如何使用循环而不是递归反推的方式实现拓展欧几里德算法
- .NET使用js制作百度搜索下拉提示效果(不是局部刷新)实现思路
- gridview 实现排序 (在不是使用sqlDataSource控件,而在后台编码绑定gridview时,指定那个字段排序时使用。本例用了单层结构,可修改后应用于多层)
- 关于使用RESTful api上传文件,基于jax rs接口,不是实现
- 在Atlas服务器端实现中推荐使用Web Service而不是Page Method
- TDD:先使用你的设计而不是先实现你的设计