十三章 字符

一、字符常量

'空格键 '----32

‘0’-------48

'A'------65

'a'-----97

    b= ' ';    //由一对单引号’’括起来的一个字符
    b= '';     //错误,不能是0个字符
    b= 'AB';   //错误
    b = '啊’; //错误,一个中文占据2个字节

     b='n'; //  对应110
     b='\n';  // 转义字符,换行

     b='\t';  // 转义字符,相当一一个空格,即tab键

     b='\101';  // 即八进制数,101 转化成二进制数 001  000  001,再把二进制转换成十进制数,对应的十进制数是65,也就是字符'A'

      b='\x41’; // 十六进制数,41转化成二进制数 0100  0001,再把二进制转换成十进制数,对应的十进制数是65,也就是字符'A'

    b='1'; //字符1,49是‘1’ASCII码
    b = '9'-'0';//把数字字符转换成对应的数值

表示单引号、双引号、反斜杠

反斜杠----‘\\’

双引号-----' \'' '

单引号-----' \' '

二、字符串常量

字符串:由一对双引号括起来的0个或多个字符

字符串常量不可以改写,想改写用字符数组

内存存储方式

printf("占据的字节数:%d \n", sizeof("abcEFG"));//字符串的尺寸----7

printf("长度:%d\n", strlen("abcEFG"));//字符串的长度----6
 

printf("占据的字节数:%d \n", sizeof("abc\0EFG"));//字符串的尺寸----8(自动带一个\0)

printf("长度:%d\n", strlen("abc\0EFG"));//字符串的长度----3(遇到第一个\0为止)

printf("占据的字节数:%d \n", sizeof(""));//字符串的尺寸----1

printf("长度:%d\n", strlen(""));//字符串的长度----0

 三、字符数组

 

  定义方式:

    char str1[5]={'A','B','C','D'};
    char str2[5]="ABCD";
    char str3[ ]="ABCD";//长度为7:最后自动加\0

 char str2[5]="ABCD";

printf("%s\n" , str2) ; --------------------ABCD

str2[1] = 'x’;
printf("%s\n" , str2);--------------------AXCD
 

    //str2 ="HIJK";   //错误,数组名代表数组的首元素地址,是地址常量

    / /str2[5] = "HIJK";//错误,数组越界

 四、字符串与指针

char str[10]= "ABCD" ;  

char *p; / /char型指针变量

p = str;  //p = &str[0];

printf ("%s \n", str);--------------ABCD

printf("%s \n" , p);--------------ABCD

  *p='X'; //str[0]='X'

printf("%s \n" , p);--------------XBCD

str[2] +=32;等价于   *(p+2) + =32;   等价于      p[2] + =32;

  //大写变小写  

printf ("%s \n", str);--------------ABcD

 char *p1; / /char型指针变量

p1=“HIJK” ;  //指向字符串常量的首地址,不可更改

printf ("%s \n", p1);--------------HIJK

printf ("%s \n", p1+2);------------JK

*p1='Y';  //错误;字符串常量不可以修改
printf ("%s \n", p1);  //错误

第5节   字符串的输入输出

单个字符的输出:

   char str[10]="ABCD";
    char ch='X';

    printf("%s\n",str) ; //字符串的输出-------%s对应的为地址
    printf("%c\n",ch) ; //单个字符的输出--------%c对应的为变量
 
    putchar(ch);//单个字符的输出函数------不会自动换行
 

单个字符的输入:

    scanf("%c",&ch);    //单个字符的输入,空格也是单个字符
    ch=getchar();    //单个字符的输入,if输入1,认为输入的是字符'1'

字符串的输入/输出:

    gets(str);//字符串的输出函数------会自动换行

    puts(str);//字符串的输出函数------会自动换行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值