初识->字符串+转义字符+注释

本文主要介绍C语言中字符串、转义字符和注释的相关知识。字符串由双引号引起,结束标志为\\0,strlen计算长度时不包含\\0,sizeof则包含。转义字符转变原来意思,如\\ddd、\\xdd等。注释用于解释代码或屏蔽无用代码,有//和/* */两种方式。
部署运行你感兴趣的模型镜像

内容预告:

今天要讲的内容是:字符串、转义字符、注释


一、字符串

你见过整型、字符类型;

但你见过字符串类型吗??——C语言中没有字符串类型(只有字符类型);

那我们怎么表示一个字符串类型呢??由双引号引起的一串字符称为字符串字面值,简称字符串;

如:


注意:

字符串的结束标志是 \0 ,在用strlen计算字符串长度时,\0只是结束的标志,不算字符;

 从上面的图中我们可以看到这两个数组的区别就是arr1字符串数组中隐藏了\0,而arr2没有\0这个结束标识符;

也就是上面所说的:

提出问题:

这里的字符串结束标志\0到底有什么用呢??起到了什么作用??

分析:

那我们来看一张图如下:

 

 

一下就能看出来arr2和我们预计的是有一点偏差的,为什么会打印出来乱七八糟的别的东西呢???

答案:

答案也很简单,就是因为我们的字符串后面隐藏了一个\0作为结束的标识符,当看见结束标识符的时候也就是打印结束。而arr2是没有\0这个标识符的,所以计算机也就不知道什么时候打印完,直到看见\0才打印结束;

那能不能让arr2得到我们预期的结果呢?当然可以的啦;

我们只要在后面加上 ‘\0’ 即可;

 那问题又来了:

\0占空间的大小吗?

直接上图:我们用sizeof来计算数组的大小都看出来了 \0 也会占一定的空间的;

arr1虽然没有写出来 \0 ,但是它是隐藏的,其实是有 \0的;

注意:用sizeof计算是包含结束字符的!!

\0 是一个字符,一个字符占一个字节

strlen计算字符长度:

注意:strlen是计算\0之前的字符的个数!!(就是不包括结束字符);

 所以arr1计算出来是3;

而arr2给的就是你一个随机值15;

那如果arr2加上了\0,结果会是怎么样:

我们看图就知道arr2的长度是3,是我们的预期值,而不是随机值;

 


二、转义字符:

意思就是:转变原来的意思;

当然我们比较要注意的就是:

 

运行结果:

\ddd是一个字符(一个转义字符),表示1-3个八进制的数字(注意:是1-3个八进制数);

// \130 代表的是把130这个八进制数转换成十进制后得到的88,作为ascll码值代表的字符;

 


\xdd 也是一个字符,代表的是1-2个十六进制数字(注意:x后跟1-2个十六进制);

// \x30 代表的是把30这个十六进制数转换成十进制后得到的,作为ascll码值代表的字符;

题目:

 

分析:

\t 是一个字符 ;

\62 是我们说的 \ddd(ddd这只需要满足1-3个八进制数就可以),所以后面跟的那个8就不是一起的了;

所以答案是 14个;(你答对了吗 ^_^ !!)


三、注释

注释的作用:1.用来解释代码的;

2.屏蔽掉没用的代码;

有两种注释:

第一种:

在代码前面加 //

//注释的快捷键:Ctrl+K+C

取消//的注释快捷键:Ctrl+K+U

 

第二种: /* */

用于一大段代码的注释;

 

但是有一定的缺陷:

嵌套注释的时候就不适合用这样的注释;

 


最后的最后,创作不易!看完觉得作者写的博客对你有一定帮助,一定要记得一键三连哦!

如果有错的地方也希望大佬指正出来,欢迎大家来评论交流!与大家一起学习进步!

下期再见哦~

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think>首先,用户的问题是:他想知道在使用Airtest的keyevent输入字符串"+"时是否需要转义。具体来说是输入字符"+"。 从用户提供的引用来看: - 引用[1]和[2]展示了keyevent的使用示例:keyevent("BACK"),这表示它用于按键事件。 - 引用[3]是关于命令行执行脚本的。 keyevent在Airtest中通常是用于模拟物理按键,比如"BACK"、"HOME"等按键。Airtest的keyevent函数主要用于按键事件,而不是输入字符串。标准方法是调用keyevent函数并传入按键的名称或键码。 然而,用户提到了输入字符串"+", 这可能意味着他想输入一个特定的字符,而不是按键事件。在Airtest中,输入文本通常使用text函数,而不是keyevent。keyevent是用于单个按键事件。 让我确认一下Airtest的官方文档或常见用法: - 在Airtest中,keyevent用于按键事件,如KEYCODE_BACK等。 - 输入文本使用text函数,例如text("Hello")或text("123")。 用户的问题是针对"+", 这是一个特殊字符。在keyevent中,如果需要模拟输入"+",可能需要知道它对应的键码。在Android中,"+"字符通常是通过SHIFT键加上其他键输入的,但在keyevent中,可能需要指定键码。 回顾引用: - 引用[1]和[2]都提到keyevent("BACK"),没有提到输入字符串- 用户可能误解了keyevent的功能。 在Airtest中,keyevent的常用参数是按键名称,如"HOME"、"BACK"等。对于特殊字符,可能需要使用KEYCODE_PLUS或其他键码。 关键点:在Android系统中,keyevent通常使用KEYCODE常量。对于"+"符号,它是KEYCODE_PLUS。 在Airtest的Python API中,keyevent函数接受字符串参数,表示按键的名称。例如,keyevent("KEYCODE_PLUS")。 关于转义:在Python字符串中,如果直接写入keyevent("+"),Python可能会将其解释为字符串连接或其他操作,因为"+"在Python中是字符串连接操作符。所以,在脚本中,需要以字符串形式传递参数,但要确保键码正确。 在keyevent函数中,参数通常是按键的名称,而不是字符本身。所以,对于"+",应该使用keyevent("KEYCODE_PLUS")或类似的名称。 在Airtest的文档中,keyevent的参数是keyname,可以是字符串如"HOME"或"KEYCODE_HOME"。对于特殊字符,需要找到对应的键码。 参考Airtest官方文档: - Airtest的keyevent函数:它模拟按键事件,传入按键名称。 - 对于加号"+", 对应的键码是"KEYCODE_PLUS"。 是否需要转义:在Python代码中,当编写字符串时,如果参数是字符串,不需要额外的转义来处理这个字符,因为它已经被包含在引号中。例如,keyevent("KEYCODE_PLUS") – 这里"KEYCODE_PLUS"是一个字符串常量,不需要转义"+"本身。 如果用户直接写keyevent("+"),那可能是错误的,因为"+"不是有效的按键名称。Airtest可能不支持直接传入字符;它需要按键名称。 所以,对于输入符号"+",用户应该使用特定的键码,如"KEYCODE_PLUS"。 在字符串中,Python的"+"不需要转义,因为它只在字符串外有特殊含义;在字符串内,它是一个普通字符。 但在keyevent函数中,参数是按键名称,所以keyevent("+")可能不被识别。相反,应该使用keyevent("KEYCODE_PLUS")。 Airtest还提供了text函数用于输入文本,它可以处理字符串输入,包括特殊字符,而不需要模拟按键事件。 例如,text("Hello+World") 会直接输入字符串,包括"+"符号。这是更简单的方式。 用户的问题是关于keyevent输入"+"是否需要转义,但keyevent不是设计用来输入字符串的;它是用于按键事件的。 因此,我应该引导用户使用text函数,除非他有特定原因要用keyevent。 总结回答: - keyevent是用于按键事件,而不是输入字符串- 对于输入的"+"符号,建议使用text函数,因为它可以直接处理字符串- 如果必须使用keyevent,那么对于"+",应该使用keyevent("KEYCODE_PLUS")。 - 在Python脚本中,不需要特别转义"+"字符,因为它包含在引号中作为字符串的一部分。 现在,结构回答: - 先解释keyevent的功能。 - 建议使用text函数。 - 如果坚持用keyevent,说明如何使用。 - 确认是否需要转义:在字符串参数中,不需要额外转义。 最后,生成相关问题,作为系统指令的要求。 系统指令要求: - 所有行内数学表达式使用$...$格式(但这个问题不涉及数学,所以可能不适用)。 - 独立公式使用$$...$$(同样不适用)。 - LaTeX语法正确(这里不需要)。 - 使用中文回答。 - 生成相关问题。 - 引用的段落末尾添加引用标识。 用户引用了[^1], [^2], [^3],所以在回答中,如果我引用这些,应添加标识。 回答结构: 1. 澄清keyevent的功能。 2. 推荐更好的方法(使用text函数)。 3. 解释使用keyevent的正确方式。 4. 回答转义问题。 5. 生成相关问题。 相关问题示例: - 如何用Airtest输入特殊字符? - Airtest中keyevent支持哪些按键名称? - 使用text函数和keyevent的区别是什么? </think>### Airtest中keyevent输入"+"是否需要转义? 在Airtest中,`keyevent()`函数主要用于触发系统级别的按键事件(如返回键、音量键等),而不是专门用于输入文本字符串。针对您的问题,输入字符"+"时是否需要转义,以下分步解释: 1. **`keyevent()`函数的基本用法**: - `keyevent()`接受按键名称或键码作为参数,例如 `keyevent("BACK")` 或 `keyevent("KEYCODE_HOME")`。它直接模拟物理按键操作,而非字符串输入[^1][^2]。 - 对于特殊字符(如"+"),Airtest没有内置参数直接映射字符串;必须使用对应的键码名称。在Android系统中,"+"对应的键码是 `KEYCODE_PLUS`。 - 在Python脚本中,不需要额外转义"+"字符,因为它作为字符串的一部分传递给函数即可。例如: ```python from airtest.core.api import * keyevent("KEYCODE_PLUS") # 正确写法,无需转义"+" ``` 这里 `"KEYCODE_PLUS"` 是一个完整的字符串,Python不会将内部的"+"解释为操作符。 2. **推荐替代方法:使用`text()`函数输入特殊字符**: - 如果您需要输入完整的字符串(如"abc+"),建议使用 `text()` 函数而非 `keyevent()`。`text()` 专为文本输入设计,能自动处理特殊字符(包括"+"),无需手动转义或键码映射[^2]。 ```python text("Hello+World") # 直接输入字符串,包括"+"符号,无需额外处理 ``` - 这种方法更简洁且可靠,尤其适用于密码、用户名等包含特殊字符的场景(引用[^2]中提到Airtest提供跨平台API支持此类操作)。 3. **为什么`keyevent("+")`可能失败**: - 直接调用 `keyevent("+")` 通常无效,因为"+"不是标准按键名称(如 "BACK" 或 "HOME")。Airtest会尝试解析该字符串为键码,但系统可能无法识别,导致操作失败。 - 如果必须通过按键模拟输入"+": - 在Android中,"+"通常需要组合键(如 Shift + =),但 `keyevent()` 不支持组合操作。 - 因此,优先使用 `text()` 或确保参数为有效键码(如 `KEYCODE_PLUS`)。 **结论**: - **不需要转义**:当使用 `keyevent("KEYCODE_PLUS")` 时,Python字符串内的"+"无需特殊转义。 - **替代方案**:对于字符串输入,直接用 `text()` 函数更高效。 ###
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值