大家晚上好呀,今天要给大家的就是关于上一篇文章遗留的代码。先复习一下题目。
我们上面已经知道了:空格的ascll码是"32",大写字母的是65~90 ,小写字母的是97~122 ,数字的是 48~57 ,’\0‘是字符串里系统默认的停止符,其他字符就可以用else解决。然后就看我的代码啦
这是我的第一次代码,虽然说可以执行了,但是是不成功的,所以是什么问题呢?我们来分析一下。
首先就是我们打漏了一种情况,就是,没有计算数字,等等可以重新加一个else if语句,还有就是我们可以看到,输出小写字母那里输出了一个&d ,这是我打错了,应该是以整型的方式输出的即,%d。然后最致命的一点就是,else if语句里面我用了a[j],但我们这里是二维数组啊,所以应该用a[i][j]的形式,然后我们进行修改
这一次就成功啦。
但是我还是想要跟大家讲的就是,为什么要加个break 语句呢?因为首先我们二维数组中a【i】【j】,第一个【i】表示的其实是行的意思,然后【j】表示的是列的意思,其实可以理解为第一行有多少个元素。然后因为我们在输入数据的时候可能不会真的全部输完41个,但是又因为我们这里是字符数组自带\0,如果不提前判别是不是\0的话,那我们下面的最后的那个语句就会把它认为是其他字符。还有就是,两重循环那里开始第一层是,数第零行的元素 a【j】。然后输入的时候gets也要注意,因为是二维数组,所以我们应该把行的a【i】填进括号里,如果是一维数组的话就直接用字符名,也就是a,如:gets(a);
好啦,今天的分享就到这里,我们明天见。