✅知识点总结(数组+字符串+ASCII大小写转换)
1. arr 和 arr[i] 的区别
- arr :数组名,代表数组首元素地址,传给 scanf 时直接写 arr ,不用 & 、不用 [] 。
- arr[i] :数组下标i位置里存放的字符内容,计算机底层存的就是这个字符的ASCII码(整数)。
2. C语言字符串特点 - 字符串末尾会自动带 \0 , \0 的ASCII值就是 0,作为字符串结束标记。
- 循环条件 for(i=0; arr[i] != ‘\0’; i++) :只要当前字符不是结束标记,就继续遍历;读到 \0 循环停止。
- 简写写法: arr[i] != ‘\0’ 可直接写成 arr[i] (非0为真,0为假)。
- 注意区分: \0 (结束标记,数值0)≠ ‘0’ (屏幕上的数字0字符)。
3. 大小写ASCII转换 - 小写az,比对应大写AZ的ASCII值大32
- 小写转大写: arr[i] = arr[i] - 32;
- 大写转小写: arr[i] = arr[i] + 32;
- ⚠️必须加if判断!只对字母做加减32。如果直接对数字/符号加减32,ASCII值错乱,出现乱码。
c
if(arr[i]>=‘a’ && arr[i]<=‘z’)
arr[i] = arr[i]-32;
4. 数组定义小要点
- char arr[]=“abc123”; :定义同时初始化字符串, [] 可以空,编译器自动算长度,自动补 \0 。
- 用 scanf 读取输入时,要提前写好数组大小: char arr[1000]; ,不能空括号。
5. scanf输入区分 - 单个字符 char ch; → scanf(“%c”, &ch); 需要取地址符 &
- 字符数组(字符串) char arr[1000]; → scanf(“%s”, arr); 数组名自带首地址,不用 &
要不要我直接给你一份整合好的完整AC代码,就是字母数字混合字符串小写转大写的?
5万+



被折叠的 条评论
为什么被折叠?



