将字符串的内容全部改成大写
实现原理
参考ASCII码我们可以知道小写字母和与之相对应的大写字母之间差值为32,所以我们只需要循环数组并将其中的所有元素的ASCII码值减去32便可一实现大小写的转换,if中的判断条件a的ASCII码值为97,b为98一直到z,26个英文字母的ASCII码值是连续的所以我们的判断条件是(arr[i]>='a'&&arr[i]<+'z')
第二种判断方法则是使用islower用来判断字符是否为小写,
最外层用while循环其判断条件为是否等于‘\0’,\0作为一个字符串结束的标志通常都会在字符串的末尾所以我们可以用来循环遍历整个字符串数组.
代码展示
#include<stdio.h>
int main()
{
//将字符数组中的小写字母改写成大写字母
char arr[] = "i am A student";
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
while(arr[i]!='\0')
{
//因为a的ASCII码值比A大了32所以用 a - 32 = A
//if (arr[i] >= 'a' && arr[i] <= 'z')
//{
// arr[i] = arr[i] - 32;
//}
//i++;
if (islower(arr[i]))
{
arr[i] -= 32;
}
i++;
}
printf("%s", arr);
return 0;
}