C语言中的字符串,转义字符和注释(初级)

1.什么是字符串

字符串是由双引号引起来的一串字符成为字符串,例如"Hello"

2.字符数组

(1)字符数组:是由一组型同类型的元素组成的字符数组

//例如
#include <stdio.h>
int main()
{
    char arr[] = { 'a','b','c'};
    
    return 0;
}

这里的arr数组就是一串字符数组

(2)字符串的结束符

在字符串中有一个隐藏的结束符,他就是"\0"他是字符串的结束符不是字符串的内容,我们通过一个长的单词拆分给每个数组时可以发现,最后隐藏了一个\0

如下图

通过vs2022的监视窗口看到当代码运行到设定数组的时候,系统自动的根据提供的代码,提供对应的数组个数,但是如果没有监视窗口我们想到的应该是系统分配了3个数组,但是通过监视窗口我们发现系统给分配了4个数组,而其中的"\0"就是字符的结束符

那么如果提供的是3单个的字符那么系统会分配几个数组呢?

 

 如上图我们可以看到当我给出三个单独的字符时,在监视中却没有看到"\0"的出现,那么此时如果执行程序我们会看到什么?

如下图

 我们会看到打印出来的数组1abc之后是一些烫,而为什么会出现这种情况呢?

是因为在系统内存中如果我们没有"\0"结束符的出现那么系统会默认认为输入的值还没有完事,在执行的时候系统会继续往后执行,知道找到结束符,才结束运行

 如果我们加上结束符的话执行后可以看到执行到abc之后就结束了

在这简单介绍一下%s %c %区别

%s是以字符格式输出字符串

%d是以十进制格式输出

%c是打印出字符

(3)求字符串长度"strlen"

//注意使用strlen求字符串长度的时候需要在程序开头引用"#include<string.h>"这个预处理指令

例如

 当没有结束符的时候系统会一直执行知道寻找到结束符,在这里我们可以看到字符结束符的重要!!!

例题

求"adcd"   "c\d\329\a\abc"  "c\d\322\a\abc"的长度

#include <stdio.h>
#include<string.h>
int main()
{
	//根据转义字符的特性求打印出来的字符长度
	printf("%d\n", strlen("adcd"));
	printf("%d\n", strlen("c\d\329\a\abc"));
	printf("%d\n", strlen("c\d\322\a\abc"));
	//答案 4 8 7
	//\322是转义字符代表八进制也就是 3*8^2+2*8^1+2*8^0最后得出的数值与ASCII表进行对应得出的字符
	return 0;

}

结果为

3.转义字符

(1)根据上面的例题,用到了一个知识点叫转义字符,转义字符主要是由"\+字母或者数字"组成的一个有特殊意义字符,不同的搭配会产生不同的效果

在这里主要说一下最后两个转义字符的区别\ddd是一个8进制组成的转义字符例如"\322"它就是由3*8^2+2*8^1+2*8^0最后得出的数值与ASCII表进行对应得出的字符,这三位组成一个字符

"\x32"是一个以16进制组成的字符是以3*16^1+2*16^0组成的字符最后都和ASCII表进行对应得出的字符

(2)ASCII表

 4.注释

注释符是由//  /**/组成的用来解释代码的作用,方便观看者明白此处代码的作用

//是c++风格

/**/是c语言风格

两中都是注释而且效果一样,只是使用的格式不同"//"风格注释只需要在每行需要注释的前面输入//就可以了"/**/"风格的注释需要在第一行需要注释的开头输入/*然后知道最后输入完内容后输入*/结束注释

//你好
//你好
/*你好你好
  你好
  你好
  你好*/

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值