您好、欢迎来到现金彩票网!
当前位置:彩之网 > 子串 >

请问c语言寻找子串位置strstr(ab)-a+1为什么要-a?

发布时间:2019-07-03 20:32 来源:未知 编辑:admin

  你虽然没有贴出strstr() 函数的内容,但如果strstr()函数返回的是b字符串的第一个字符在a字符串中出现的地址,那么就要用“【返回值】-【字符串a首字母的地址】+1”了。

  现在要查找Chi,显然是能够查到的,这时函数的返回值将会是C的地址1012,我们知道a的值是字母i的地址——1007。经过下面的计算:

  就得到Chi在字符串iloveChina. 中出现的位置是6(代表从第六个字符出现)。

  strstr(a,b)返回的是指向4的地址,要想求出这个地址是a数组第几个地址,就需要减去数组起始地址,因此strstr(a,b)-a就是完成这个功能的.

  因为查找函数返回的是一串在a串中的起始地址。再减去a的首地址就得到了起始字符的下标。因为这个下标是从零开始的,所以按照习惯再加1,就是要查找的字符串b出现在a串中的第几个字符了。

  “位置”是从a起算的,就是说a那个位置是第一个;而strstr返回的是绝对地址,当然就得减去a。

http://ibtlsports.com/zichuan/168.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有