完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
数组下标是从0开始编号的;
当前数组下标就是该元素之前元素的个数。 无论是从从0开始下标,还是从1开始下标,两下标之差是一样的,都表示b比a多了几个元素。 前言: 加法的理解: a+2= b 表示b比a多2; 减法的理解: b-2=a; 加减法是数量上多几个,少几个。加几就是多几个,也是指针向后挪动了几个;减几就是少几个,也是指针向前挪动了几个; 数组下标是从0开始的,即数组第一个元素是str[0]; 从0开始下标,当前下标值即为前面元素的个数。 数组的长度是数组最后一个元素的下一位的下标length,----->表示之前有length个元素。 for(int i = 0;i length是数组的长度 pos =0; pos+=2; //指向下标为2的元素; pos+=2; //指向下标为4的元素;,数组之前有4个元素; pos = 4;//数组之前有4个元素; pos-=2; //指向下标为2的元素; 小结: 数组指针,从起始位置0 ,然后+N,表示指针向后挪动N个位置,数组指针指向了下标为N的元素。同时剩余数组长度就少了N个。 数组指针,从length位置-N,表示指针向前挪动N个位置,数组指针指向了下标为 length-N的元素,同时,剩余数组长度为length-N. 以如下示例 ,给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度分析数组下标: int lengthOfLongestSubstring(char * s){ int strLen = strlen(s); int maxLen = 1; int count ; char *str = s; int i,j; int k = 0; if(strLen == 0)//字符串为空串 { return 0; } for(i=1;i count = 1; //字符串每次比较,count重新计数 for(j=0;j if(s==str[j]) { str = str+j+1;//重复的话,str指向重复字符的下一个字符 k = k+j+1;//k记录str共向后移动的字符数//向后移动的个数==去掉的字符个数 break; //str成为一个新串,重新开始比较 }else { count++; //不重复的情况时,计数值++ } } maxLen = maxLen>count?maxLen:count;//求最大字符长度//跳出for循环就意味着串比较结束 } return maxLen; } for(j=0;j if(s==str[j]) { str = str+j+1;//重复的话,str指向重复字符的下一个字符 k = k+j+1;//k记录str共向后移动的字符数//向后移动的个数==去掉的字符个数 break; //str成为一个新串,重新开始比较 }else { count++; //不重复的情况时,计数值++ } } 上例中的 j |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1083浏览 2评论
700浏览 1评论
452浏览 0评论
193浏览 0评论
328浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 23:27 , Processed in 1.262051 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号