C语言中,strstr函数的功能是什么?不用库函数,自己写怎么写?
展开全部
C语言中,strstr函数的功能是寻找字符串中子串出现的位置,自己写的步骤如下。
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:。
int fun(char *a, char *b)
{
int i, j, alen = strlen(a), blen = strlen(b);
for (i = 0; i < alen - blen + 1; i++)
if (a[i] == b[0]) {
for (j = 1; j < blen; j++) if (a[i + j] != b[j])break;
if (j == blen)
return i;
}
return -1;
}
3、编译器运行test.cpp文件,此时成功实现了strstr实现了字符串查找。
展开全部
函数原型是char *strstr(char *str1,char *str2);作用是找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)
如果找到返回该位置的指针。若找不到,返回NULL指针。如果不用库函数写,就得用到串操作中的模式匹配算法,或者他的改进算法!!!
这里给你一个模式匹配算法不明白的,可以交流下!!
#include <stdio.h>
#include<string.h>
int main()
{
char a[10];
char b[5];
int i,j,m,n,k;
printf("输入字符串a:");
scanf("%s",a);
printf("输入字符串b:");
scanf("%s",b);
i=k=0;
j=0;
while(i<strlen(a)&&j<strlen(b))
{
if(a[i]==b[j])
{
i++;
j++;
}
else
{
j=0;k++;
i=k;//可用于记录原来i的位置 ;
}
}
if(j>=strlen(b))//判断找到字符串的条件
{
printf("找到字符串%s",b);
return 1;
}
else
{
printf("未找到字符串%s\n",b);
return 0;
}
}
c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!!
如果找到返回该位置的指针。若找不到,返回NULL指针。如果不用库函数写,就得用到串操作中的模式匹配算法,或者他的改进算法!!!
这里给你一个模式匹配算法不明白的,可以交流下!!
#include <stdio.h>
#include<string.h>
int main()
{
char a[10];
char b[5];
int i,j,m,n,k;
printf("输入字符串a:");
scanf("%s",a);
printf("输入字符串b:");
scanf("%s",b);
i=k=0;
j=0;
while(i<strlen(a)&&j<strlen(b))
{
if(a[i]==b[j])
{
i++;
j++;
}
else
{
j=0;k++;
i=k;//可用于记录原来i的位置 ;
}
}
if(j>=strlen(b))//判断找到字符串的条件
{
printf("找到字符串%s",b);
return 1;
}
else
{
printf("未找到字符串%s\n",b);
return 0;
}
}
c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个我也是第一次见,看下这个网站吧
http://baike.baidu.com/view/745156.htm
http://baike.baidu.com/view/745156.htm
参考资料: http://baike.baidu.com/view/745156.htm
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询