C语言中 字符串、转义字符 和 注释(第5篇)

一、字符串

"hello bit.\n"

这种由 双引号(Double Quote)引起来的一串字符 称为字符串字面值(String Literal), 或者简称 字符串。

字符串的结束标志是一个 \0 的转义字符。

注:在计算字符串长度的时候 \0 是结束标志,不算作字符串内容

int main()
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	char arr3[] = { 'a','b','c','\0' };
	printf("%s\n", arr1);             输出结果:abc
	printf("%s\n", arr2);             输出结果:abc烫烫烫烫蘟bc
	printf("%s\n", arr3);             输出结果:abc 
	return 0;
}   

解释arr2:直到碰到结束标志 \0 才会停止继续读取,所以abc之后的都是 乱码
在这里插入图片描述
printf 以 %s 打印字符串 的时候,就从你给的地址开始打印,一直打印到遇到 ‘\0’ ,停止。

#include<string.h>

int main()
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	char arr3[] = { 'a','b','c','\0' };
	printf("%d\n", strlen(arr1));             输出结果:3
	printf("%d\n", strlen(arr2));             输出结果:15   错误,15是随机值
	printf("%d\n", strlen(arr3));             输出结果:3
	return 0;
}

注:在计算字符串长度的时候 \0 是结束标志,不算作字符串内容
strlen(arr2) 得到的结果15,是随机值,(每个 电脑/编译器 得到的值,都是不一样的,因为这是随机的),strlen()一直到遇到 结束标志 ‘\0’ 为止

1.补充知识点:函数 strlen( )

如果要用 strlen( ),必须加上头文件:#include <string.h>

2.补充知识点:单目操作符 sizeof

sizeof :操作数的类型长度(以字节为单位)

int main()
{
	int a = 10;
	printf("%d\n", sizeof(a));          输出结果:4
	printf("%d\n", sizeof(int));        输出结果:4
	return 0;
}
int main()
{
	int a = 10;
	printf("%d\n", sizeof a);          输出结果:4
	printf("%d\n", sizeof (a));        输出结果:4
	return 0;                          sizeof(a)sizeof a 
}                                      这说明:sizeof  是 操作符,而不是 函数

sizeof(a) 和 sizeof a
这说明:sizeof 是 操作符,而不是 函数

C语言规定:sizeof(long) >= sizeof(int)

int main() 
{
	printf("%d\n", sizeof(short));           2   单位:字节
	printf("%d\n", sizeof(int));             4
	printf("%d\n", sizeof(long));            4
	printf("%d\n", sizeof(long long));       8
	printf("%d\n", sizeof(float));           4
	printf("%d\n", sizeof(double));          8
	return 0;
}

3.补充知识点:转义字符

转义字符 释义
\? 在书写连续多个问号时使用,防止他们被解析成三字母词,(因为,在老一点的编译器中,将 ??) 翻译成 方括号 ] )
\' 用于表示字符串常量 '
\" 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字
\xdd dd表示2个十六进制的数字
%% 用于输出 %

其中 制表符 \t ,制表符的宽度大小可以在编译器中设置。
方法如下:
工具 -->选项 --> 文本编辑器 --> C/C++ --> 制表符
在这里插入图片描述
在这里插入图片描述

4.补充知识点:转移字符 \ddd(8进制) 和 \xdd(16进制)

\ddd ddd表示1~3个八进制的数字。如:\130 对应 X
1~3个八进制:哪怕只有1个数字,也是可以的

int main()
{
	char test = '\130';
	printf("%c	", test);
	return 0;               输出结果:X
}

如何理解“1~3个”八进制?
8进制是0~7,因此 8 是一个字符,\320是一个字符

其中,\32和\320效果是一样的

从这里你就可以明白:为什么说是1~3个了

int main()
{
	printf("%d	", strlen("\3208"));          输出结果:2    \3208
	printf("%d	", strlen("\328"));           输出结果:2    \328 
	return 0;
}

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

int main()
{
	char test = '\x30';
	printf("%c	", test);
	return 0;               输出结果:0
}

在这里插入图片描述
A 的ASCII值是 65
a 的ASCII值是 97
对应的大小写字母相差 32

5.补充知识点:基本单位

bit 比特位
byte=8bit
kb=1024byte
mb=1024kb
gb=1024mb
tb=1024gb
pb=1024tb

二、求 字符串长度

1.利用函数strlen( )---------->添加头文件: #include <string.h>

添加头文件: #include <string.h>

#include<string.h>

int main()
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	char arr3[] = { 'a','b','c','\0' };
	printf("%d\n", strlen(arr1));             输出结果:3
	printf("%d\n", strlen(arr2));             输出结果:15   错误,15是随机值
	printf("%d\n", strlen(arr3));             输出结果:3
	return 0;
}

注:在计算字符串长度的时候 \0 是结束标志,不算作字符串内容
strlen(arr2) 得到的结果15,是随机值,strlen()一直到结束标志 ‘\0’ 为止

2.利用操作符 sizeof --------->比用strlen( ) 多算一个 ‘\0’

int main()
{
	char arr1[] = "abcd";
	char arr2[] = { 'a','b','c','d' };
	char arr3[] = { 'a','b','c','d','\0' };
	int a = sizeof(arr1) / sizeof(arr1[0]);          输出结果:5
	int b = sizeof(arr2) / sizeof(arr2[0]);          输出结果:4 
	int c = sizeof(arr3) / sizeof(arr3[0]);          输出结果:5
	printf("%d\n", a);
	printf("%d\n", b);
	printf("%d\n", c);
	return 0;
}

多一个结束标志:‘\0’


三、注释(无关紧要,了解即可,天天用的)

方法一://
方法二:/*:注释一行或者多行(缺点:不能嵌套)

int main()
{
	/*int a = 0;
	/*int b = 10;
	return 0;*/
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值