C语言—字符串、转义字符、注释

在学习了这么多c语言知识后,我们今天来了解一下c语言中字符串和字符,转义字符以及注释的作用,废话不多说,我们开始吧

字符串

字符串:由英文双引号引起的一串字符,可用来表示身份证号码、姓名等汉字,专业称字符串字面值(stringl iteral),注意 单英文引号引起的叫做字符,双引号引起的叫做字符串

    示例:  “heloo bit.\n”  ;  “” (空字符串)

    练习—字符串和字符的区别:

int main()
{
	char x[] = "abc";
	char y[] = { 'a','b','c',0 };
	printf("%s\n", x);
	printf("%s\n", y);
	return  0;
}
  1. char x[] = "abc":定义一个名为x的数组字符,并将abc复制进去,其中[]中没有定义数据是因为我们让系统自动确定所占用的大小,如果定义为char x[2]= "abc"那么就表示只占用2个字符串大小,但是实际x中的字符枚举出来分别为-‘a’,’b’,’c’,’0\’ 一共四个,会放不下的,值得留意的是char x[2] = "abc"x[2] = "abc"不是一个意思,前者是定义数组,后者是将第三个元素定义为abc
  2. char y[] = { 'a','b','c',0 }定义一个名为y的数组字符,并将'a','b','c',0复制进去
  3. printf("%s\n", x):以字符的类型打印x

注意:在x数组中,因”abc”是字符串所以系统会自动在后面加入字符串结束标志 ‘\0’(转义字符) 而y数组中包含的是字符,它没有自动添加字符结束标志,需要手动写进去,不然会乱码(可以在调试窗口中查看ctrl+f10-下方调试窗口),其次0=\0,a=97 (来自于ascll码)

补充:计算字符长度

新函数-strlen (计算字符长度)

注意:使用此函数需要再顶部声明include<string.h> 来使用此函数

示例:

#include <stdio.h>
#include<string.h>
int main()
{
	char x[] = "abc";
	char y[] = { 'a','b','c' };
	printf("%d\n", strlen(x));
	printf("%d\n", strlen(y));
	return 0;
}
  1. #include <stdio.h>:声明printf等函数
  2. #include<string.h>:声明strlen等函数
  3. char x[] = "abc":定义一个名为x的数组字符,并将abc复制进去
  4. char y[]={ 'a','b','c'}定义一个名为y的数组字符,并将'a','b','c'复制进去
  5. printf("%d\n", strlen(x)):计算x中的字符长度,并且以十进制的形式显示,最终结果3
  6. printf("%d\n", strlen(y)):计算x中的字符长度,并且以十进制的形式显示,最终结果为随机值

注意:之所以结果不一样是因为strlen计算长度是以\0为结束标志,而y中没有结束标志,故就会一直计算字符长度,直到遇到\0才停止,故显示的值为随机值

转义字符

转义字符:转变原来的意思

       例如:普通字符n和换行符\n

       示例:

int main()
{
	printf("C;\test\32\test.c");
	return 0;
}

                   因为\t为水平制表符,故在有\t时转义了意思,不再是原本的t了

转义字符

释义

\?

在书写多个连续问号时,防止编译器解析为三字母词,现以很少出现此情况

\’(英文单引号)

用于表示字符常量’

\”(英文双引号)

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

\\

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

\a

使终端发出警报声或闪烁

\b

退格符,但不真实删除字符

\f

进纸符

\n

换行

\r

回车,光标移动到同一行开头

\t

水平制表符,通常是8个位宽

\v

垂直制表符

\ddd

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

\xdd

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

练习:让上一个案例得到想要的显示效果

int main()
{
	printf("C;\\test\\32\\test.c");
	return 0;
}

\\正如上表所示,是不让\后面的字符被转义

效果:

 

练习:打印’(英文单引号)和”(英文双引号)

int main()
{
	printf("%c\n", '\'');
	printf("%s\n","\"");
	return 0;
}
  1. printf("%c\n", '\''):用字符的形式打印’(英文),为了防止前两个单引号组成一队,然后出现错误故,在中间加\表示改不作意思,为普通字符
  2. printf("%s\n","\"")用字符串的形式打印”(英文),为了防止前两个双引号组成一队,然后出现错误故,在中间加\表示改不作意思,为普通字符

 案例:\ddd和\xdd的用法

#include <stdio.h>
#include<string.h>
int main()
{
	printf("%d\n",strlen("c:\test\32\test.c"));
	printf("%c\n",'\132');
	printf("%c\n", '\x61');
	return 0;
}
  1. printf("%d\n",strlen("c:\test\32\test.c")):用十进制的方式打印出strlen的结果,因为\t算一个字符,而\32是属于\ddd类型的是一个八进制,也就是32是一共八进制,转化为十进制后为26,通过ascll码表得出是符号”→”所以也算一个字符
  2. printf("%c\n",'\132'):以字符的形式打印\132,而\132属于\ddd类型,是八进制,故132(八进制)90(十进制)→Z(ascll码)
  3. printf("%c\n", '\x61'): 以字符的形式打印\x61,而\x61属于\xdd类型,是十六进制,故61(十六进制)97(十进制)→a(ascll码)

注意:八进制和十六进制都不能大于它的最大数组否者错误

结果

注释

注释:手动注释掉一些不需要的代码或在代码后用文字述说改代码的作用等

       符号:/*(C语言-有一个缺点,不能嵌套)和//(C++语言-快捷键ctrl+k并ctrl+c).

好了,关于c语言的字符串、转义字符、注释的内容就到这里了,我们下一章再见

如有问题请指出 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值