字符串匹配函数
const char * strstr ( const char * str1, const char * str2 );
搜索字符串在另一个字符串中首次出现的位置。
const char* p = strstr("how are you", "are");
搜索匹配的下标:
printf("匹配的下标:%d\n", p - "how are you");
字符打印:
printf("%c\n", *p);
字符串打印:
printf("%s\n", p);
匹配不上返回null:
printf("%s\n", my_strstr("how are you", "Are"));
仿真字符串匹配函数 strstr:
const char* my_strstr(const char* str1, const char* str2);
const char* my_strstr(const char* str1, const char* str2)
{
const char* p = str1;
const char* q = str2;
while (*p != '\0')
{
if (*p == *q)
{
q++;
p++;
if (*q == '\0')
{
return p - strlen(str2);
}
}
else
{
p++;
q = str2;
}
}
return NULL;
}
完整代码:
#include <stdio.h>
#include <string.h>
const char* my_strstr(const char* str1, const char* str2);
int main ()
{
/*字符串匹配函数
搜索字符串在另一个字符串中首次出现的位置。
*/
/*strstr*/
const char* p = strstr("how are you", "are");
printf("%c\n", *p);
printf("匹配的下标:%d\n", p - "how are you");
printf("%s\n", p);
printf("%s\n", my_strstr("how are you", "Are"));//匹配不上返回null
/*仿真字符串匹配函数 strstr */
return 0;
}
const char* my_strstr(const char* str1, const char* str2)
{
const char* p = str1;
const char* q = str2;
while (*p != '\0')
{
if (*p == *q)
{
q++;
p++;
if (*q == '\0')
{
return p - strlen(str2);
}
}
else
{
p++;
q = str2;
}
}
return NULL;
}
完整打印:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)