十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用strstr这个函数
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的荥经网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。
C/C++ string库(string.h)提供了几个字符串查找函数,如下:
memchr 在指定内存里定位给定字符
strchr 在指定字符串里定位给定字符
strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量
strrchr 在字符串里定位给定字符最后一次出现的位置
strpbrk 在字符串str1里定位字符串str2里任意一个首次出现的字符
strspn 返回字符串str1从开始字符到第一个不在str2中的字符个数
strstr 在字符串str1中定位字符串str2首次出现的位置
int same(char* a, char* b)
{
int s = 0;
char* m = b;
while (*a == *b a m){a++;b++;s++;}
return s;
}
int maxsubstr(char *s, char** p)
{
char* last = NULL;
int lastL = 0;
while (*s)
{
char* d = s+1;
while(*d)
{
int l = same(s, d);
if (l lastL){lastL = l; last = s;}
d++;
}
s++;
}
*p = last;
return lastL;
}
#includestdio.h
#includestring.h
int findstr(char *s_str,char *d_str);
int main(void) {
char s1[80],s2[80];
int n;
printf("请输入一个字符串:");
gets(s1);
printf("请输入你要查找的字符串:");
gets(s2);
n=findstr(s1,s2);
printf("%s在%s里共有%d个\n",s2,s1,n);
return 0;
}
int findstr(char *s_str,char *d_str) {
int i,j,k,count=0;
char temp[80];
int length=strlen(d_str);
for(i=0;istrlen(s_str);i++) {
k=0;
for(j=i;ji+length;j++)
temp[k++]=s_str[j];
temp[k]='\0';
if(!strcmp(temp,d_str)) count++;
}
return count;
}
复制相关函数:memcpy、memmove、strcpy、strncpy
字符串连接函数:strcat、strncat
字符串比较函数:memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函数:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相关函数:memset、strerror、strlen
可利用strstr函数。
strstr函数功能是找出字符串中特定字符串第一次出现的位置。如果找到,返回字符串中出现特定字符串的地址;如果没找到,返回空指针。如果要返回值是bool型的话,可以自写一个函数根据strstr的返回值,判断自写函数的返回值。
如:
bool
strfind(*str1,*str2)
{
if(strstr(*str1,*str2)!=0)
return
true;
return
false;
}
如果要不区分大小写,可以用strlwr(转换为大写)或strupr(转换为小写)将两字符串同一转换为大写(或小写)再作查找。