求C语言中怎么用strstr函数求!位置!

我是要求从左到右数它第一次出现在第几个位置。char*p,s1[],s2[];p=strstr(s1,s2);得出来的是指针啊。。。怎么处理?如abcdcd得到的是3... 我是要求从左到右数它第一次出现在第几个位置。
char *p,s1[],s2[];
p=strstr(s1,s2);

得出来的是指针啊。。。怎么处理?
如 abcd
cd
得到的是3
展开
 我来答
kaixingui2012
推荐于2017-09-05 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6408万
展开全部

strstr()函数是标准C语言函数,在linux系统下,运行命令man strstr 可以看到strstr()函数原型为:

$ man strstr
SYNOPSIS
        #include <string.h>
        char *strstr(const char *haystack, const char *needle);
DESCRIPTION
       The strstr() function finds the first occurrence of the substring needle in the string haystack.  The terminating '\0' characters are not compared.

 函数功能描述: strstr()函数查找needle(第二个参数)在字符串haystack(第一个参数)中首次出现的位置。如果找到,则返回子串首位置的指针值,否则返回NULL。

如果想将指针位置转换成相应的字符偏移位置,可以用返回指针与字符串haystack指针进行相减运算,得到偏移值。参考代码和运行结果如下:

larntin
推荐于2017-10-06 · 超过14用户采纳过TA的回答
知道答主
回答量:30
采纳率:100%
帮助的人:18.5万
展开全部
char *p = 0;
char *s1 = "abcd";
char *s2 = "cd";
p=strstr(s1,s2);
int ret = p - s1;
print("%d\n",ret);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wssznh1999
2012-08-25 · TA获得超过428个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:366万
展开全部
p-s1+1就是其位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式