C语言中如何查找字符串?

 我来答
波特卡斯K
推荐于2019-09-23
知道答主
回答量:24
采纳率:0%
帮助的人:11.1万
展开全部
用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[255]="abcde";
char ch2[100]="cd";
char* ch;//用于接受返回值
if((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串
printf("-1\n");
}else{//说明找到了那个字符串
printf("%d\n",ch-ch1+1);//cde的地址减去abcde的地址+1
}
}
秀画d
2018-11-16 · TA获得超过845个赞
知道小有建树答主
回答量:1827
采纳率:84%
帮助的人:72.8万
展开全部
参考代码: #include int main(void){ char a[80]; char b[80]; char *p = a;//辅助变量p int count = 0;//用来记录子串出现的次数 printf("请输入主字符串:"); gets(a); printf("请输入要查找的子串:"); gets(b); while((p = strstr(p,b)) != NULL) { count ++; p++; } printf("子串出现的次数为%d次\n",count);return 0;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwthappy
2018-01-10 · 超过27用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:53.6万
展开全部
想了个效率比较低的:
1.fopen打开文件
2.fread每次读取一个字节和h(http的首字母)比较,成功了后再比较t,等等,如果都成功,说明http://匹配成功,然后将以后的字符读入到数组或文件中,同时用同样的方法检测.html字串。检测到.html字串就停止对数组或文件的写入。
如果有任何一个不匹配,重复步骤2(还得重新从比较h开始)
在怎么有效率也得遍历整个文件,我实在想不出什么别的更有效率的方法了。难道用哈希?散列?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
九问束暖姝
2020-11-10 · TA获得超过1183个赞
知道小有建树答主
回答量:1843
采纳率:95%
帮助的人:9.7万
展开全部
不用自己写,有一个函数叫strstr,原型是
char
*strstr(char
*str1,
char
*str2),功能是找出str2字符串在str1字符串中第一次出现的位置。
可以这样写:
char
*p=strstr(a,b);
if(NULL
!=
p)
{
//a中不存在b,添加相应代码
}
else
{
//a中存在b,添加相应代码
}
返回值p为a中第一次出现b的位置
这个函数要包含头文件string.h
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式