【C语言】字符串、转义字符及注释

简单不先于复杂,而是在复杂之后。

【C语言】字符串、转义字符及注释_第1张图片

目录

字符串

转义字符

 \n

\0

\?

\'

 \"

 \\

\a

\t

\ddd

\xdd

 注释


字符串

由双引号引起来的一串字符为字符串字面值,简称字符串。

char是字符类型,没有字符串类型。

但是字符串可以存储到字符数组中:

char arr[10] = "abcdef";

以上开辟了7个字符的空间

[ ]中可以不填,自动根据后面字符串内容开辟相应空间

字符串的结束标志是一个\0 转义字符,在计算字符串长度时 \0 只作结束标志,不作字符串内容

【C语言】字符串、转义字符及注释_第2张图片

arr2 中字符只占用了空间的一部分,之后还有很多字符,\0 是字符串的结束标志,所以要在空间后直至遇到\0才终止。

strlen 是求字符串长度的一个库函数,string length,头文件string。 

strlen是用来获取字符串的有效长度的,结尾标记'\0'不包含在内。

strlen获取的规则非常简单:从前往后依次检测,直到遇到'\0'是就终止检测。

字符数组不是一个有效的字符串,因为后面没有放置'\0',因此strlen在求解时,将有效字符检测完之后,还会继续向后检测,直到遇到'\0'是才终止,因此不确定之后的第一个'\0'在什么位置。

转义字符

转义字符

释义

\?

在书写连续多个问号时使用,防止他们被解析成三字母词

\'

用于表示字符常量

\“

用于表示一个字符串内部的双引号

\\

用于表示一个反斜杠,防止它被解释为一个转义序列符。

\a

警告字符,蜂鸣

\b

退格符

\f

进纸符

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\ddd

ddd表示1~3个八进制的数字。 如: \130 X

\xdd

dd表示2个十六进制数字。 如: \x30 0

 \n

int main()
{
    printf("abcn");
    printf("abc\n")//换行符
    return 0;
}

\0

int main()
{
    printf("abc0def")//打印abcdef
    printf("abc\0def")//打印abc
    return 0;
}

\?

//三字母词
//??) - ]
//??( - [
int main()
{
    printf("%s\n","(are you ok??)")
    //打印结果(are you ok]
    printf("%s\n","(are you ok\?\?)")
    //打印结果(are you ok??)
    //当前编译器不支持三字母词
    return 0;
}

\'

int main()
{
    printf("%c\n",''');//报错
    printf("%c\n",'\'');//表示字符常量'
   
    return 0;
}
\"

 \"

int main()
{
    printf("abcdef");//只有字符串能直接简化打印
    printf("a");//字符串里可以只有一个字符
    printf(""");//报错
    printf("\"");表示一个字符串内部的双引号
    return 0;
}

 \\

int main()
{
    printf("abcd\0ef");//打印结果abcd
    printf("abcd\\0ef");//打印结果abcd\0ef
    //表示一个反斜杠,防止它被解释为一个转义序列符。
    
    printf("c:\test\test.c");//打印结果c:    est    est.c
    printf("c:\\test\\test.c");//打印结果c:\test\test.c
    //路径打印用\\
    return 0;
}

\a

int main()
{
    printf("\a\a\a\a\a\a\a");
    //警告字符,蜂鸣
    return 0;
}

\t

int main()
{
     printf("abcd\tef");
     //Tab = \t
    return 0;
}

\ddd

int main()
{
    printf("%c\n",'\130');//ddd表示1~3个八进制的数字
    //打印结果X,为130这个八进制转化为十进制的数字作为ASCII码值所代表的字符
    
    return 0;
}

字符\0 的 ASCII码值为0

字母大小写的 ASCII 码值相差32

【C语言】字符串、转义字符及注释_第3张图片

\xdd

int main()
{
    printf("%c\n",'\x60');
    
    return 0;
}
下面是打印数据的格式
//%d - 打印整形
//%c - 打印字符
//%s - 打印字符串
//%f - 打印float类型的数据
//%lf - 打印double类型的数据    
//%zu - 打印sizeof的返回值

 注释

  • 注释可以梳理思路
  • 注释可以对复杂的代码解释

【C语言】字符串、转义字符及注释_第4张图片

你可能感兴趣的:(C语言,c语言,开发语言)