strstr函数代码(C语言实现库函数strstr())

本文目录
- C语言实现库函数strstr()
- c语言strstr函数的编程
- 2. 编写子函数:strstr形式参数为两个字符串,str1和str2
- C语言 字符串查找(要代码)
- 实现一个strstr函数
- c++中strstr函数问题
- c语言 strstr函数
C语言实现库函数strstr()
char *str_s(char *s1,char *s2)
{
int len,i,flag=0;
char *s3=NULL;
len=strlen(s2);
while(*s1!=’\0’)
{
if(*s1==*s2)
{
s3=s1;
for(i=0;i《len;i++)
{
if(*(s1+i)!=*(s2+i))
{
s3=NULL;
break;
}
else
flag=1;
}
}
s1++;
if(flag&&i == len)//注意这里的判断
return s2;//返回的话,最好是返回s2 否则你如果字符串在中间的话,后面的数据是不需要的。
}
return s3;
}
c语言strstr函数的编程
#include《string》
#include《stdio.h》
int main()
{
char a={"wwwuwhffhuhfuh ,ddf, ty12323223,gsddf"};
char b;//’\’占一个字符8个字符存不下8个数:12323223
char* str1=strstr(a,"ty");
int i;
for (i=0;i《8;i++)
{
b=*(str1+2+i);
}
b=’\0’;
printf("%s\n",b);
}
2. 编写子函数:strstr形式参数为两个字符串,str1和str2
有一个比较公认的strstr的实现代码如下:
int my_strstr(const char *s1, const char *s2);
int my_strstr(const char *s1, const char *s2)
{
int retcode = -1;
int pos = 0;
size_t n;
if (s1 == NULL)
return -2;
if (s2 == NULL)
return -3;
n = strlen(s2);
while(*s1)
if(!memcmp(s1++,s2,n))
{
retcode = pos;
break;
}
else
pos++;
return retcode;
}
测试程序如下:
int main(int argc, char **argv)
{
int ret;
char str1 = "Ilikeyou\0";
char str2 = "ike\0";
ret = my_strstr(str1, str2);
printf("Results: %d\n", ret);
return 0;
}
C语言 字符串查找(要代码)
用strstr这个函数
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。
源代码:
#include《stdio.h》
#include《string.h》//调用string.h中的strstr函数
void main(){
char ch1="abcde";
char ch3="cd";
char* ch;//用于接受返回值
if((ch=strstr(ch1,ch3))==NULL){//说明没有要找的字符串
printf("-1\n");
}else{//说明找到了那个字符串
printf("%d\n",ch-ch1+1);//cde的地址减去abcde的地址+1
}
}
实现一个strstr函数
bool exist(char *str)
{
char *love="love",*p=NULL;
if((p=strstr(str,love))==NULL)//先判断是否存在这样的子串
{
return false;
}
if(p!=’ ’)//再判断它是否是一个独立的单词
{
return false;
}
return true;
}
c++中strstr函数问题
#include《string》
#include《iostream》
using namespace std;
int main()
{
char str1="12345abcde";
char str2="bc";
char str3;
int i;
int num=strstr(str1,str2)-str1; //用返回的字符串2出现的位置减去字符串1的首地址,得到前面字符串长度
for(i=0; i《num;i++) //循环把字符串1前面部分拷贝到字符串3
{
str3;
}
str3=’\0’;
cout《《str3《《endl; //输出字符串3 ,输出结果是“12345a”
system("pause");
}
c语言 strstr函数
1万字也都输出,控制办法是将某个位置置为字符串结束符‘\0’。
#include 《stdio.h》
#include 《string.h》
void main()
{
char a="我我我我哦我哦喔喔喔we喔我哦我我我我我我我我哦我我我为我我";
char *b="we";
char *p = strstr(a, b);
printf( "%s",p ); // 这里输出"we喔我哦我我我我我我我我哦我我我为我我",有1万字也输出,除非遇见字符串结束符’\0’。
p = ’\0’;
printf( "%d",p ); // 这里就只输出"we喔我哦我"了,因为p被设置为结束符0了。
}

更多文章:
tomcat环境变量配置win(tomcat配置环境变量tomcat配置环境变量win10)
2026年7月13日 11:00
infostation是什么意思(羽生结弦infostation是谁管理)
2026年9月13日 10:00
javascript职业技能培训(Java培训完后的每个阶段价值)
2025年6月14日 06:15
上海php高级开发工程师招聘(土巴兔招聘怎么样家装人才的首选)
2026年5月21日 21:00
sql2012数据库管理工具(microsoft sql server2012怎么开启啊)
2026年5月26日 10:30
qjson解析(通过get提交参数返回json数据怎么用php解析)
2025年9月25日 15:45
停止使用以阶级斗志为纲的口号(十一届三中全会提出了什么方针)
2025年12月29日 00:45
sqlc对mysql支持(sqlalchemy 支持哪些数据库)
2026年8月19日 23:30
12333微信公众号为什么显示数据加载中(微信公众号办理社保卡上传证件显示一直在加载中什么原因)
2025年6月25日 12:15
characterize名词形式怎么写(by后面加动词原形吗)
2025年9月25日 16:15
creditcardnumberisinvalid翻译(invalidnumber是什么意思)
2026年5月31日 06:00











