字符串处理函数strchr和strstr的实现
2015-10-10 10:49
363 查看
1,strchr函数
函数功能:查找一个字符。在一个字符串中查找一个特定的字符。
函数原型:char *strchr(char const *str,int ch);
函数说明:strchr在字符串str中查找字符ch第一次出现的位置,找到后返回一个指向该位置的指针。如果该字符不存在于字符串中,则返回一个NULL指针。注意:第二个参数是一个整型值,但是,它包含了一个字符串值。
函数实现:
2,strstr函数
函数功能:在一个字符串中查找一个字串
函数原型:char *strstr(char const *s1,char const *s2);
函数说明:strstr实现在s1中查找整个s2第一次出现的位置,并返回一个指向该位置的指针。如果s2并没有完整的出现在s1的任何地方,函数返回一个NULL指针。如果第二个字符串是一个空字符串,函数返回s1。
函数实现:
注:转载出自:http://blog.chinaunix.net/uid-26524139-id-3079990.html
函数功能:查找一个字符。在一个字符串中查找一个特定的字符。
函数原型:char *strchr(char const *str,int ch);
函数说明:strchr在字符串str中查找字符ch第一次出现的位置,找到后返回一个指向该位置的指针。如果该字符不存在于字符串中,则返回一个NULL指针。注意:第二个参数是一个整型值,但是,它包含了一个字符串值。
函数实现:
1 /*实现strchr函数*/ 2 #include 3 #include 4 char *mystrchr(char *s,char c) 5 { 6 char*p=s; 7 while(*s && *s!=c) 8 s++; 9 if(*s==c) 10 return s; 11 return NULL; 12 } 13 14 int main() 15 { 16 char buf[20] = "hellowrold!"; 17 char c='l'; 18 char *p = mystrchr(buf,c); 19 printf("%s\n",p); 20 return 0; 21 } 22
2,strstr函数
函数功能:在一个字符串中查找一个字串
函数原型:char *strstr(char const *s1,char const *s2);
函数说明:strstr实现在s1中查找整个s2第一次出现的位置,并返回一个指向该位置的指针。如果s2并没有完整的出现在s1的任何地方,函数返回一个NULL指针。如果第二个字符串是一个空字符串,函数返回s1。
函数实现:
1 /*实现strstr函数*/ 2 #include 3 #include 4 char *mystrstr(char *s1,char *s2) 5 { 6 char *pChar; 7 pChar = s2; 8 int len = strlen(s2); 9 for(;strchr(s1,*pChar)!='\0';s1++) 10 { 11 if(strncmp(s1,pChar,len) == 0) 12 { 13 return s1; 14 } 15 } 16 return NULL; 17 } 18 19 int main() 20 { 21 char str1[20]="abcdhello!"; 22 char str2[20]="cd"; 23 char *p = mystrstr(str1,str2); 24 printf("%s\n",p); 25 return 0; 26 } 27
注:转载出自:http://blog.chinaunix.net/uid-26524139-id-3079990.html
相关文章推荐
- strcpy和memcpy的区别
- 每个程序猿必读的10篇文章
- 程序员必读的十一本书
- 读《C语言陷阱与缺陷》一书后的一些注意事项
- 如何建立测试管理体系
- 在 Ubuntu 中,关于 tftp 服务器的实现
- 在Ubuntu中,关于nfs服务器的实现
- Linux启动过程详解
- 台式电脑用网线可以上网,为什么把网线插到笔记本电脑上就连不上网的问题的解决
- Linux上的终端设备
- 关于在 Windows 和 VMware workstation 之间实现共享目录的问题
- http://www.google.com/ncr 谷歌无限制搜索方法,用过都说好
- Markdown
- 短时间内连续发请求的问题
- VC++程序如何判定SQL Server的字段是自增长的?
- Alsa是Linux高级音频接口(百度文库无下载券抄来的)
- Oracle NoLogging Append 方式减少批量insert的redo_size
- java 基础第一季
- linux下实时查看tomcat运行日志
- 【转】关于c#中委托的解释