*strstr.c - search for one string inside another
*Purpose:
* defines strstr() - search for one string inside another
*******************************************************************************/
#include
#include
*char *strstr(string1, string2) - search for string2 in string1
*Purpose:
* finds the first occurrence of string2 in string1
*Entry:
* char *string1 - string to search in
* char *string2 - string to search for
*Exit:
* returns a pointer to the first occurrence of string2 in
* string1, or NULL if string2 does not occur in string1
*Uses:
*Exceptions:
*******************************************************************************/
char * __cdecl strstr (
const char * str1,
const char * str2
char *cp = (char *) str1;
char *s1, *s2;
if ( !*str2 )
return((char *)str1);
while (*cp)
s1 = cp;
s2 = (char *) str2;
while ( *s1 && *s2 && !(*s1-*s2) )
s1++, s2++;
if (!*s2)
return(cp);
cp++;
return(NULL);
效率非常高的库函数,我们稍作修改即可。
char * __cdecl stristr (
const char * str1,
const char * str2
char *cp = (char *) str1;
char *s1, *s2;
if ( !*str2 )
return((char *)str1);
while (*cp)
s1 = cp;
s2 = (char *) str2;
while ( *s1 && *s2 && toupper(*s1)==toupper(*s2) ){
s1++, s2++;
if (!*s2)
return(cp);
cp++;
return(NULL);
这样实现了strstr忽略大小写匹配
参考:https://www.itdaan.com/blog/2017/11/23/8a000aa1d66b8537f4d23718fb00f9a4.html
Linux下没有现成的 不区分大小写的strstr函数,但是有 strncasecmp 函数,用于不区分大小写的字符串比较,利用它,我们可以很简单地实现不区分大小写的strstr函数
strncasecmp 函数原型:
int strncasecmp(const char *s1, const char *s2, size_t n);
strncasecmp 比较 s1 和 s2
[Submit][Status][Web Board]
Description
fjxmlhx hates marshtomp, so he wants to ignore the “marshtomp” in every sentences. In order to making th...
strstr()函数的原型定义在strstr()函数是C语言标准库中一个重要的字符串处理函数,用于查找子字符串在主字符串中的第一次出现。通过理解其定义、用法和实现,我们可以在各种字符串处理任务中有效地使用它。尽管strstr()函数在处理小规模字符串时性能表现良好,但在大规模文本处理任务中,可以考虑使用更高效的算法或第三方库。希望通过本文的讲解,读者能对C语言中的strstr()函数有一个全面深入的了解,并能在实际编程中灵活应用这些知识。如果你有任何问题或建议,欢迎在下方留言与我交流。
char* CP_stristr(const char *pcString1, const char *pcString2)
char *pCompareStart = (char *)pcString1;
char *pCursor_S1, *pCu
strstr 区别大小写,从字符开始找如果有返回true否则就返回false
stristr 字符不区别大小写,从字符开始找如果有返回true否则就返回false
strpos 区别大小写strpos查找成功后则是返回的是位置。因为位置有可能是0,所以判断查找失败使用===false更合适。
if(strstr($HTTP_SERVER_VARS[HTTP_USER_AGENT], "Mo
/用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;//windows环境下字符串必须定义为数组型,否则报错。//查找字符串,在一个串中查找给定字符的第一个匹配之处。puts("未找到该字符");puts("找到了该字符");puts("未找到该字符");puts("找到了该字符");
在C语言中(string.h)定义了用于进行忽略大小写的字符串比较的函数strcasecmp及strncasecmp,以及用于子串查找的函数strstr,不过很遗憾的是,C及C++中并未定义strstr的“忽略大小写版本”。
以下是strstr的一种实现形式(注意,当s2是一个空串时