转义字符

/*****************************

 一个转义字符总是以反斜杠开始,再加一个其他字符组成。
 //全是小写的
/*********************
\o            空字符(NULL)
\n换行符(LF)
\r回车符(CR)
\t水平制表符(HT)
\v垂直制表(VT)
\a响铃(BEL)
\b退格符(BS)
\f换页符(FF)
\’单引号
\”双引号
\\反斜杠
\?问号字符
\ddd   八进制最多3位,多的不包含在转义里
\xhh   十六进制,最多跟两位数字,多的报错
**************************/


#include <iostream>
#include <stdlib.h>
using namespace std;

void test()
{
    char str[]="ab\n\012\\\"";
    printf("%d\n",strlen(str));

    //字符串中包含的6个字符是:'a'、'b'、'\n'、'\012'、'\\'和'\"'
}
void test2()
{
    printf("%d\n",strlen("\t\"\065\xff\n"));
    //字符串中包含的5个字符是:'\t'(跳格符)、'\"'(双引号)、
    //'\065'(ASCII值为八进制065,也即十进制为51的字符)、
    //'\xff'(ASCII值为十六进制ff,也即十进制为255的字符)、'\n'(换行符)。
}

void main()
{


    /*
    \ddd 任意字符三位八进制      最多跟3个数字,其他数字另算

    \xhh 任意字符 二位十六进制   后面不得超过两位数字
    */
 
    cout<<"对于八进制类型\n"; // \dddd八进制
    printf("%d\n",strlen("\2344"));//2
    printf("%d\n",strlen("\234"));//1
    printf("%d\n",strlen("\12"));//1
    printf("%d\n",strlen("\1"));//1
    char k[]="\123456";
    cout<<k[0]<<endl;//字符0x12表示s
    cout<<k[1]<<endl;//4
    cout<<k[2]<<endl;//5
    cout<<k[3]<<endl;//6
    cout<<k[4]<<endl;//回车

    cout<<"对于十六制类型\n";     // \xhh
    //printf("%d\n",strlen("\x234"));
    //编译不通过 too big for character
    // \x最多跟两个数字
    printf("%d\n",strlen("\x12"));//1
    printf("%d\n",strlen("\x1"));//1
    char a[]="\x12ww";
    cout<<a[0]<<endl;//字符0x12
    cout<<a[1]<<endl;//w
    cout<<a[2]<<endl;//w


    cout<<"*************回车类型************\n";
    cout<<"\\\\"<<"长度"<<strlen("\\\\")<<endl;  //2
    cout<<"\a"<<"长度"<<strlen("\a")<<endl;  //1
    cout<<"\0"<<"长度"<<strlen("\0")<<endl;  //0
    cout<<"\\\"ABCDEF\"\\"<<"长度"<<strlen("\\\"ABCDEF\"\\")<<endl;  //10

    cout<<"********制表符号*****************"<<endl;
    cout<<"0123456789"<<endl;
    cout<<"\t124567"<<endl;          //\t是右移动8个字符长度
    cout<<"01245678\baaa"<<endl;     //\b是后退一格
    /*
    0123456789
         124567
    0124567aaa
    */
    cout<<"********转义各个含义*****************"<<endl;

    cout<<"\'"<<endl; //单引号
    cout<<"\""<<endl; //双引号
    cout<<"\\"<<endl; //反斜杠
    cout<<"aaaa\?123"<<endl; // 问号字符
    cout<<"aaa\0aaaa"<<endl;//空字符\0
    cout<<"111\naaa"<<endl ;//换行 (换到下一行)

    cout<<"012\r345"<<endl ;//回车(回到行首)
    cout<<"888888888888888\v2222222222222"<<endl ;//回车(回到行首)

    char Y[]="\X01";
    cout<< "长度"<<Y[0]<<endl;

    printf("%x\n",Y[0]);
    cout<<Y[1]<<endl;//w
    cout<<Y[2]<<endl;//w
    cout<<Y[3]<<endl;//w
    cout<<Y[4]<<endl;//w


    printf("\x3F");//0x3f对应字符?

    //注意\X和\x的区别,只有小写才是转义字符
    printf("\n**********\n");
    cout<<"\X"<<"长度"<<strlen("\X")<<endl;  //1
    cout<<"\Xaa"<<"长度"<<strlen("\Xaa")<<endl;  //1

 /*
  X长度1
  Xaa长度3

  */


}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值