问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言如何对字符串进行位置查询

发布网友 发布时间:2022-03-02 09:09

我来回答

3个回答

热心网友 时间:2022-03-02 10:38

包含文件:string.h
函数名:
strstr
函数原型:
extern
char
*strstr(char
*str1,
const
char
*str2);
语法:*
strstr(str1,str2)
str1:
被查找目标 string
expression
to
search.
str2:
要查找对象 The
string
expression
to
find.
返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。
例子:
char
str[]="1234xyz";
char
*str1=strstr(str,"34");
cout
<<
str1
<<
endl;
显示的是:
34xyz
函数实现
1.Copyright
1990
Software
Development
Systems,
Inc.
char
*strstr(const
char
*s1,const
char
*s2)
{
 int
len2;
 if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误
 
return(char*)s1;
 for(;*s1;++s1)
 {
 if(*s1==*s2
&&
strncmp(s1,s2,len2)==0)
 return(char*)s1;
 }
 return
NULL;
}
2.Copyright
1986
-
1999
IAR
Systems.
All
rights
reserved
char
*strstr(constchar*s1,constchar*s2)
{
int
n;
if(*s2)
{
while(*s1)
{
for(n=0;*(s1+n)==*(s2+n);n++)
{
if(!*(s2+n+1))
return(char*)s1;
}
s1++;
}
return
NULL;
}
else
return
(char*)s1;
}
3.
GCC-4.8.0
char
*strstr(const
char*s1,const
char*s2)
{
const
char*p=s1;
const
size_tlen=strlen(s2);
for(;(p=strchr(p,*s2))!=0;p++)
{
if(strncmp(p,s2,len)==0)
return
(char*)p;
}
return(0);
}
应用举例
//
strstr.c
#include
<syslib.h>
#include
<string.h>
main()
{
char
*s="GoldenGlobalView";
char
*l="lob";
char
*p;
clrscr();
p=strstr(s,l);
if(p)
printf("%s",p);
else
printf("NotFound!");
getchar();
return0;
}
//功能:从字串”
string1
onexxx
string2
oneyyy”中寻找”yyy”
(假设xxx和yyy都是一个未知的字串)
char
*s=”string1onexxxstring2oneyyy”;
char
*p;
p=strstr(s,”yyy”);
if(p!=NULL)
printf(“%s”,p);
else
printf("notfound\n");
说明:如果直接写语句p=strstr(s,”one”),找到的是onexxxstring2oneyyy
char
*mystrstr(char*s1,char*s2)
{
if(*s1==0)
{
if(*s2)
return
(char*)NULL;
return
(char*)s1;
}
while(*s1)
{
int
i=0;
while(1)
{
if(s2[i]==0)
return
s1;
if(s2[i]!=s1[i])
break;
i++;
}
s1++;
}
return
(char*)NULL;
}

热心网友 时间:2022-03-02 11:56

包含文件:string.h

函数名: strstr

函数原型:

extern char *strstr(char *str1, const char *str2);

语法:* strstr(str1,str2)

str1: 被查找目标 string expression to search.

str2: 要查找对象 The string expression to find.

返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。

例子:

char str[]="1234xyz";
char *str1=strstr(str,"34");
cout << str1 << endl;

显示的是: 34xyz

函数实现

1.Copyright 1990 Software Development Systems, Inc.

char *strstr(const char *s1,const char *s2)
{
 int len2;
 if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误
  return(char*)s1;
 for(;*s1;++s1)
 {
 if(*s1==*s2 && strncmp(s1,s2,len2)==0)
 return(char*)s1;
 }
 return NULL;
}

2.Copyright 1986 - 1999 IAR Systems. All rights reserved

char *strstr(constchar*s1,constchar*s2)
{
int n;
if(*s2)
{
while(*s1)
{
for(n=0;*(s1+n)==*(s2+n);n++)
{
if(!*(s2+n+1))
return(char*)s1;
}
s1++;
}
return NULL;
}
else
return (char*)s1;
}

3. GCC-4.8.0

char *strstr(const char*s1,const char*s2)
{
const char*p=s1;
const size_tlen=strlen(s2);
for(;(p=strchr(p,*s2))!=0;p++)
{
if(strncmp(p,s2,len)==0)
return (char*)p;
}
return(0);
}

应用举例

// strstr.c

#include <syslib.h>
#include <string.h>
main()
{
char *s="GoldenGlobalView";
char *l="lob";
char *p;
clrscr();
p=strstr(s,l);
if(p)
printf("%s",p);
else
printf("NotFound!");
getchar();
return0;
}

//功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”

(假设xxx和yyy都是一个未知的字串)

char *s=”string1onexxxstring2oneyyy”;
char *p;
p=strstr(s,”yyy”);
if(p!=NULL)
printf(“%s”,p);
else
printf("notfound\n");

说明:如果直接写语句p=strstr(s,”one”),找到的是onexxxstring2oneyyy

char *mystrstr(char*s1,char*s2)
{
if(*s1==0)
{
if(*s2)
return (char*)NULL;
return (char*)s1;
}
while(*s1)
{
int i=0;
while(1)
{
if(s2[i]==0)
return s1;
if(s2[i]!=s1[i])
break;
i++;
}
s1++;
}
return (char*)NULL;
}

热心网友 时间:2022-03-02 13:31

#include <stdio.h>
int strrindex(char a[],char b[])
{
int i,j,k=-1;
for(i=0;a[i]!='\0';i++)
{int n=0;
for(j=0;b[j]!='\0';j++)
{
if(a[i]!=b[j]) break;
i++;
n++;
}
if(b[j]=='\0') k=i-n;
}
return k;
}

int main()
{
char s[200],t[200];
gets(s);
gets(t);
printf( "%d\n",strrindex(s,t));
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 C201702041938103263快递怎么查 怎么查我的电脑IP地址处于C类地址中哪个网络号 C语言怎么实现查表 【求助】省事业单位报名考试审核未通过 C语言查找函数 工人技能等级考试报名审核显示不通过,是因为论文网址检索问题,该怎么办? 怎样查C++/C中的库函数? c语言怎么查表 教资考试报名未通过审核,审核意见为其他,是什么情况? 猕猴桃怎么催熟最快 4个方法,立即解决? 为什么我的电脑打不出中文字来? 在微信群里面怎样判断谁是群主? 苹果11收到信息闪光灯怎么设置 PMP认证价值有多少 苹果11信息和电话的闪光灯怎么关 Excel2010怎么插入单元格,行和列 Excel2010单元格、行和列怎么插入 苹果6s闹钟图标为何不显示,闹钟为何不管用,手机刚买的 闹钟图标为什么不显示,闹钟是打开的 思科查看一个ip下一条等详细信息的命令 excel表格如何去水印 WPS excel表格如何添加和去掉水印? Microsoft Excel 工作表 怎样在下面做水印? 微信群里有人换了新头像,有的人能看到新换头像,有的人却看不到新换头像为什么_问一问 国家注册审核员能否挂靠? 怎样把视频变成动图,放到ppt上去? 怎么把动态图片弄到ppt里面去啊? Excel 怎么样可以把这个动态图放到PPT里能动 怎么把会动的图片加入PPT中? 怎么样把动态图粘贴到幻灯片上 怎样把一个会动的图片插入到PPT里面(插入ppt里后也要会动) 计算机最好考什么证 户外水管冻住多久才能解冻 羽绒服平时怎么清洗? 教你羽绒服怎么洗 小学数学大于号小于号怎么认 大于号和小于号怎么区分5>3还是5<3 数学的大于号和小于号怎么认 大于号,小于号,是不是哪边数学大,开口就朝哪边! 数学等式中大于号和小于号什么情况下改变方向?谢谢