小小的写代码时的语法重新发现

今天写了一道通过率最高的题,caicaicaicaicaicai............................

虽然很简单,但是还是发现了一些新的知识点,嗯,还很差。。。。。

例如:

1.

我用一个数组a[26]来记录26个字母在字符串中哪些是出现过的。,并且下面判断字符串S(含有大小写字母)中的字母是否在上一个字符串中出现过。

但是一开始的时候总是反映数组越界。。。。。。。。,我慌了,这。。。没错啊。。。。

一开始的时候我写成了这样                                  if (a[S[i]-'a']!=0&&S[i]>='a'&&S[i]<='z')
                                                                                                   cnt++;

这样就一定会报错,因为当S[i]是一个大写字母时候,S[i]-'a'是一个负数,也就是说这时候 a[S[i]-'a'] 肯定是错误的。

这个时候只要将判断语句放在后面就可以了。   if (S[i]>='a'&&S[i]<='z'&&a[S[i]-'a']!=0)  这样当S[I]是大写的时候在前面的判断条件就会被卡住,从而不会再进行到下面的 a[S[i]-'a']!=0 ,这其实就是 C++中的断路特性。

2.

C++中字符串中的长度函数的首字母是小写的。   str.length()   这样的写法,在java中好像是str.Length   弄混了,弄混了。。。。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

今天老乡聚会,发现了学长学姐太牛了吧,南大,中科大,中山,北师范。。。。。。。。。。看看他们的现在的生活真幸福。。。。自己累成狗,现在都零点37了,还没睡呢.  

我会变强,可惜不是你。

猜你喜欢

转载自blog.csdn.net/weixin_41514525/article/details/83043863