#include stdioh#include limitsh#include ctypehvoid upperCasechar str int step = a - A; 得到大写字母与小写字母间的ASCII码差值 forint i = 0; isizeofstrsizeofstr0; i++
代码中存在一个问题:在函数upperCase中,sizeof(str)/sizeof(str[0])并不能正确获取数组str的长度。这是因为在函数中,数组参数会退化为指针,sizeof(str)实际上是指针的大小,而不是数组的大小。因此,这个表达式的结果将始终是指针的大小除以字符的大小,通常是一个较小的固定值。为了解决这个问题,可以在函数中传递数组的长度作为另一个参数,或者使用字符串库函数strlen来获取字符串的长度。
原文地址: https://www.cveoy.top/t/topic/h5rX 著作权归作者所有。请勿转载和采集!