初识字符串,转义字符和注释

1.字符集

在认识字符串之前先要了解什么是字符,在c++语言中字符集由下述字符构成:

英文字符:A~Z,a~z;

数字字符:0~9;

特殊字符:!# % & ^ * _(下划线) + - / = \ < > ~ ' " , . : ; ? ( ) [ ] { }

2.字符串

字符串常量是用一对双引号(英文)括起来的字符序列,例如"ABC123!#,."。其在内存中存放的形式是,按串中字符的排列次序顺序存放,每个字符占一个字节,并在结尾处用'\0'作为结尾标记。

#include <stdio.h>
#include<string.h>
int main()
{
    char arr[] = { "China!" };
    int len = strlen(arr);
    printf("%s\n",arr);
    printf("%d\n", len);
    return 0;
}

 这里通过用双引号的形式将字符串存入数组中,数组会自动生成'\0',通过求数组长度可以看到只有6个字符,而监视可以很清楚的看到是存在'\0'字符的,但不算入字符长度。

  还有一种创建字符串的方式,将每个字符单独用单引号括起来,字符中间用逗号隔开,这种需要注意的是要自己加上'\0'结束字符,否则会随机录入后续内存中存在的任意字符,如:

int main()
{
    char arr[] = { 'C','h','i','n','a','!' };
    char arr2[] = { 'C','h','i','n','a','!','\0'};
    int len = strlen(arr);
    int len2 = strlen(arr2);
    printf("%s\n",arr);
    printf("%d\n", len);
    printf("%s\n", arr2);
    printf("%d\n", len2);
    return 0;
}

这里可以对比两种录入方式的区别,用单引号分别录入时,不输入结束字符的话,数组会继续录入内存中存在的字符,导致字符长度随机,且这里会有警告。

 

(大胆猜测一波,这两个数组在内存中存的地址相近,导致第一次结束时的China!可能是第二个数组的)

3.转义字符

     转义字符是通常用\加上某个字符表达一些特殊的含义,如上述输出是经常用'\n'来输出换行,通常用来表示一般字符不便于表达的一些控制代码,广义上说可以用转义字符来表示字符集中任意一个字符,这里引入ASCII码,通常可以用\ddd,d表示八进制中的数共3位,或者\xdd,d表示16位进制中的数共两位,如'\077'表示问号,也可以用’\x3F‘。

int main()
{
    printf("8进制表示问号\077\n");
    printf("16进制表示问号\x3F");
    return 0;
}


具体的一些转义字符就不给出了,需要用时可自行百度,熟练掌握后自然可以记忆。

因为转义字符是用\来表达,那如果在字符串中需要表示\时需要用‘\\’将转义字符转义(禁止套娃),以及'\?'表示‘?’,例如:

int main()
{
    char arr[] = { "\\?\?\!" };
    int len = strlen(arr);
    printf("%s\n",arr);
    printf("%d\n",len);
    return 0;
}

 

3.注释

在C++中有两种注释方法,一直是沿用C语言的注释用“/*”和“*/”来成段的进行注释,但其弊端是不能进行嵌套,当成段注释代码时,若其中有其他注释很容易出现错误。

所以现在一般用“//’“,来注释,从”//“开始,到它所在行的行尾,所有字符都被作为注释处理。

int main()
{
    char arr[] = { "\\?\?\!" };//创建一个字符串
    int len = strlen(arr);//求该字符串长度
    printf("%s\n",arr);//输出该字符串
    printf("%d\n",len);//输出该字符串长度
    return 0;
}

 如以上代码添加了注释,并不影响代码本身的表达,且让人更容易理解代码所表达的内容,在写复杂代码时,注释是非常有必要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值