字符和switch
字符
在ASCII码中,字符的取值范围是0000000—1111111,可以看作是0—127的整数。
例如 字符‘a’—97 字符‘A’—65 ‘0’—48 ‘ ’—32
资料显示:“字符常量事实上时int类型而不是char类型”(对此句不是特别理解,欢迎讨论)。
有符号字符和无符号字符(对此不是特别理解)
有符号字符的取值范围 -128—127;(signed char)
无符号字符取值范围 0—255; (unsigned char)
下列面出算数类型的分类
整值类型:
*字符数型(char)
*有符号整型(signed char、short int、int、long int)
*无符号整型(unsigned char、unsigned int……)
*枚举类型
浮点类型(float、double、long double)
字符的读写(存在俩种方法)
- 用scanf和printf
scanf( ”%c”, &ch );
printf ( “%c” , ch );
注意点:
在读入字符前,scanf不会跳过空白字符。为了强制scanf函数在读入字符前跳过空白字符需要在%c前面加上一个空格(如存在其他方法欢迎讨论)
- 用getchar和putchar
ch=gerchar();
putchar(ch);
注意点:
每次调用getchar函数时,它会读入一个字符并将其返回,所以需要用一个变量储存这个字符。
下面分享一个程序
“确定消息的长度“
#include <stdio.h>
int main()
{
char ch;
int length=0;
printf("输入消息");
ch=getchar();
while(ch!='\n'){
length++;
ch=getchar();
}
printf("消息长度:%d",length);
return 0;
}
资料显示,上述代码还可以缩短但是我看着很奇怪。欢迎同学们分享意见
switch
最常用格式:
switch(控制表达式){
case 常量表达式 : 语句
case 常量表达式 :语句
default : 语句}
控制表达式:switch后面必须跟着由圆括号括起来的整型表达书。C语言中吧字符当成整数来处理,所以switch可以对字符进行判定,但是不能用浮点数和字符串。
常量表达式:5是常量表达式 2+2也是常量表达式,但是n+10不是常量表达式。
语句:可以是任意数量的语句。
分支标号:即 case 常量表达式 :
C语言中不允许有重复的分支标号,但是对分支的顺序没有要求,而且default不一定放最后。而且多个分支标号可以放在同一组语句的前面。
如:
Switch(grade){
case 1:
case 3:
case 2:语句1
default :语句3
case 4 语句2
}
break 语句的作用
如果没有break语句,执行完分支的最后一句语句后,会直接跳转到下一个分支的语句进行输出。如上述的switch 如果case=2 进入语句1 如果语句1中没有break,会输出语句3。如果语句3也没有break 会继续向下。
Switch语句和if else语句的互换。
例:
Switch(grade){
Case 1 :语句1
Case 2:语句2
Case 3:语句3
}
转换成
If(grade==1 )语句1
else if(grade==2)语句2
else 语句3

浙公网安备 33010602011771号