C系列函数原型之-StrStr(char *str,char *subStr)的实现
2014-09-22 11:43
393 查看
思路:
1、对于字符串最后一位为'\0',可以作为临界条件
2、当*str != '\0'的时候,判断*p是否等于*q,如果相等继续后移2个指针,如果最后*q的指针到达边界,说明整个匹配是成功的,直接返回res即可。否则后移主串指针。
#include <iostream>
char *Mystrstr(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')
return res;
}
str++;
}
returnNULL;
}
int main(int argc,const
char * argv[])
{
char *s1 ="abcdefghijklmn";
char *s2 ="bcd";
// 在字符串s1中寻找字符串2,若找到返回位置,否则返回Null
char *res =Mystrstr(s1, s2);
if (res !=NULL) {
printf("%s",res);
}else{
printf("not");
}
printf("\n");
return0;
}
结果:
1、对于字符串最后一位为'\0',可以作为临界条件
2、当*str != '\0'的时候,判断*p是否等于*q,如果相等继续后移2个指针,如果最后*q的指针到达边界,说明整个匹配是成功的,直接返回res即可。否则后移主串指针。
#include <iostream>
char *Mystrstr(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')
return res;
}
str++;
}
returnNULL;
}
int main(int argc,const
char * argv[])
{
char *s1 ="abcdefghijklmn";
char *s2 ="bcd";
// 在字符串s1中寻找字符串2,若找到返回位置,否则返回Null
char *res =Mystrstr(s1, s2);
if (res !=NULL) {
printf("%s",res);
}else{
printf("not");
}
printf("\n");
return0;
}
结果:
相关文章推荐
- 宇龙酷派笔试题:求出数组的倒置,函数原型为char * reverse( char * str)
- 算法题 用C或C++实现void reverse(char* str)函数,即反转一个null结尾的字符串
- 【C++】用C或C++实现void reverse(char* str)函数,即反转一个null结尾的字符串
- 习题 8.17 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为int strcmp(char *p1, char *p2);
- 常见函数strlen、strcmp、strstr原型实现
- 用C++实现void reverse(char* str)函数,即反转一个null结尾的字符串.
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数) 例如:“12“ 返回12 “-123“ 返回-123 函数原型:int my_atoi(char *str) {}
- mem系列函数(memset memcpy memmove) 和str系列函数(strlen strcpy strcmp strcat strstr strtok)
- C语言 为下面的函数原型编写函数定义:int ascii_to_integer(char *str)
- 模拟实现strcpy,strcmp,等str~系列函数
- str系列函数的实现
- 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数);函数原型:double my_atof(char *str)
- 为函数原型编写函数定义: int ascii_to_integer(char *str);
- [转载] 已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy(C++版)
- 已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C
- 常见函数strlen、strcmp、strstr原型实现
- 为函数原型写函数定义:double my_atof(char *str);
- 为函数原型编写函数定义:int my_atoi(char *str);(将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数))
- strlen,strcpy,strncpy,strcmp,strcat,strstr的用法,函数原型及函数的实现
- CI1.2 用c或c++实现void reverse(char* str)函数,即反转一个null结尾的字符串