目录

字符串 —— 就是一串字符,用“”(英文双引号)引起来的

转义字符 —— 转变了它原来的意思 

注释 —— 用来解释复杂代码的


字符串 —— 就是一串字符,用“”(英文双引号)引起来的

注意:字符串的结束标志是 \0 的转义字符,字符串在结尾的位置隐藏了一个\0的字符,\0 仅仅是结束标志,在计算字符串长度的时候 sizeof() 是包含进去的,求数组的元素个数 strlen() 的时候是不算进去的。

举例1:

Android 处理转义过的字符串 转义字符在字符串中_大数据

 手动在  { 'a', 'b', 'c'} 后面加结束符 \0

#include<stdio.h>
int main(void)
{
	char arr1[] = "abc";
	char arr2[] = { 'a', 'b', 'c', '\0'};

	//打印字符串

	printf("%s\n", arr1);
	printf("%s\n", arr2);

	return 0;
}

运行结果:

abc
abc

举例2:

#include<stdio.h>
int main(void)
{
	char arr1[] = "abc";
	char arr2[] = { 'a', 'b', 'c'};

	//打印字符串的长度

	printf("%d\n", strlen(arr1));  // string lenth
	printf("%d\n", strlen(arr2));

	return 0;
}

运行结果:

Android 处理转义过的字符串 转义字符在字符串中_#include_02

 转义字符 —— 转变了它原来的意思 

 ASCII码表:每一个字符都有一个值 —— ASCII值 

转义序列

字符值

在输出设备上的动作

\’

单引号

输出字符

\"

双引号

输出字符

\?

问号

输出字符

\\

反斜线

输出字符

\a

警告

产生声音或者视觉信号 ,windows报错声音

\b

退格

前移一个字符

\f

换页

移动到下一页的开端

\n

换行

移动到下一行开端

\r

回车

移动到当前行开始

\t

水平制表符

移动到下一个垂直的制表对齐点

\v

垂直制表符

移动到下一个垂直的制表对齐点

\ddd 

1-3个八进制的数字

输出字符,如:\130  输出X

\xdd 

2个十六进制数字

输出字符,如:\x30  输出0

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

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

举例1:

Android 处理转义过的字符串 转义字符在字符串中_Android 处理转义过的字符串_03

举例2:

Android 处理转义过的字符串 转义字符在字符串中_bc_04

练习题:程序输出什么?

#include<stdio.h>
int main(void)
{
	printf("%d\n", strlen("c:\test\328\test.c")); 
	
	return 0;
}

答案:14

解析:求 c:\test\328\test.c 字符串长度,\t 算一个字符,\32算一个字符,8算一个字符,所以总共有14个,为什么 \328 算2个字符?因为 \ 后面没有 x ,不符合 \xdd 格式,所以 \ 后面跟的是八进制的数字,符合 \ddd 格式,八进制里面没有 8,所以 \328 算 \32 和 \8 两个字符。

printf在打印的时候可以指定打印格式

#include<stdio.h>
int main(void)
{
	//printf在打印的时候可以指定打印格式
	
	printf("%d\n", 100);      //打印整数  输出 100
	printf("%c\n", 'a');      //打印字符  输出 a
	printf("%s\n", "abc");    //打印字符串 输出 abc

	return 0;
}

注释 —— 用来解释复杂代码的

#include<stdio.h>
int main(void)
{
	//int a = 10;  //C++注释风格 可以注释一行也可以注释多行 
	
	/*
	int b = 0;
	*/             //C语言的注释风格 —— 不支持嵌套注释

	return 0;
}