字符和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)

 

字符的读写(存在俩种方法)

  1. 用scanf和printf

scanf( ”%c”, &ch );

printf ( “%c” , ch );

注意点:

在读入字符前,scanf不会跳过空白字符。为了强制scanf函数在读入字符前跳过空白字符需要在%c前面加上一个空格(如存在其他方法欢迎讨论)

  1. 用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

posted @ 2021-10-10 17:25  echoesyy  阅读(121)  评论(0)    收藏  举报