当前位置: 首页 > news >正文

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

字符串

字符串就是一串字符

用英文双引号括起来的字符

int main()
{"dasgfhjkasg\n""hello world!"return 0;
}

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

如何证明呢?

int main()
{//字符数组 - 数组是一组相同类型的元素char arr[] = "hello";//方括号内不写数组长度时,会根据后面元素来初始化return 0;
}

运行时查看调试监视arr中可以看到

数组的第六位存放'\0'

所以\0是字符串结束的标志,字符串结尾都隐藏了一个\0

结束标志如何理解
#include<stdio.h>
int main()
{char arr1[]="abc";char arr2[] = {'a','b','c'};printf("%s\n", arr1);printf("%s\n", arr2);return 0;
}

运行监视

//arr1 中有四个元素 - 多一个 \0
//arr2 中有三个元素

运行结果

abc
abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫贴-␦→

我们来看空间内容

数组名称内存块
arr1abc\0
arr2abc

arr2打印完成后后面空间是未知的,没有停止符号,所以会继续打印乱码

测试放入\0

int main()
{char arr1[]="abc";char arr2[] = {'a','b','c','\0'};printf("%s\n", arr1);printf("%s\n", arr2);return 0;
}

结果

abc
abc

再次验证一下

求字符串长度
strlen();  //求字符串的长度 string length
int len = strlen("abc");
printf("%d",len);

输出结果

3

出现警告strlen未定义 - 出现原因,没有引用头文件

需要引用

#include <string.h>

字符串的结束标志\0仅仅是结束标志!!!

当我们求长度时并不计算在内!!!

#include<stdio.h>
#include <string.h>
int main()
{char arr1[] = "abc";char arr2[] = { 'a','b','c' };printf("%d\n", strlen(arr1));printf("%d\n", strlen(arr2));return 0;
}

运行结果

3
42//随机值,直到找到\0才会停下

意料之中,因为没有终止符,所以字符串长度为随机值

#include<stdio.h>
#include <string.h>
int main()
{char arr1[] = "abc";char arr2[] = { 'a','b','c','\0'};printf("%d\n", strlen(arr1));printf("%d\n", strlen(arr2));return 0;
}

运行结果

3
3

完美!


转义字符

#include<stdio.h>
​
int main()
{printf("C:\test\test.c");return 0;
}

打印结果

C:      est     est.c

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

三字母词已经不支持 — 比如 ??) 会变成 ]

例如

int main()
{printf("%c",''');return 0;
}

报错是因为单引号,所以我们需要转义一下

int main()
{printf("%c",'\'');return 0;
}

输出结果

'

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

printf("%d",100);
printf("%c",'a');
printf("%s","abc");

如何不让斜杠被认为是转义字符

\t会被转义成水平制表符,我们可以用斜杠转义斜杠来解决上面的问题

#include<stdio.h>
​
int main()
{printf("C:\\test\\test.c");return 0;
}

打印结果

C:\test\test.c

成功!

\转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t 水平制表(HT) (跳到下一个TAB位置) 009 \v 垂直制表(VT) 011 \ 代表一个反斜线字符’’’ 092 ’ 代表一个单引号(撇号)字符 039 " 代表一个双引号字符 034 ? 代表一个问号 063 \0 空字符(NUL) 000 \ddd 1到3位八进制数所代表的任意字符 三位八进制 \xhh 十六进制所代表的任意字符 十六进制


\ddd 1到3位八进制数所代表的任意字符 三位八进制

int main()
{printf("%c\n",'\130');return 0;
}

输出结果

X  //——ASCII码值为88

八进制130转化为十进制为88


键盘上可以打出各种字符

各种字符是如何存储的

A — 65

B — 66

a — 97

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

\xhh 十六进制所代表的任意字符 十六进制

int main()
{printf("%c\n",'\X30');return 0;
}

输出结果

0 //’0‘的ASCI码值为48,十六进制为30

面试题

#include<stdio.h>
int main()
{//问题1:在屏幕上打一个单引号,怎么做//问题2:在屏幕上打一个字符串,字符串的内容是一个双引号”,怎么做printf("%c\n", '\‘');printf("%s\n", "\"");return 0;
}

这道题不难,根据上面的内容可以直接给出答案


笔试题:

//程序输出什么?
#include<stdio.h>
int main()
{    printf("%d\n",strlen("abcedf"));  printf("%d\n",strlen("C:\test\328\test.c"));return 0;
}

答案为

14//转义字符算一个字符

魔鬼细节

/328

我们很容易想到上面的 — \ddd 1到3位八进制数所代表的任意字符 三位八进制

但是八进制数怎么能出现8呢朋友


注释

用来解释复杂代码

//这种注释风格是C++注释风格
/*
这种注释风格是C语言的注释风格
*/
//这种最为常用,C语言注释不支持嵌套注释,所以C++风格更常用

相关文章:

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

字符串 字符串就是一串字符 用英文双引号括起来的字符 int main() {"dasgfhjkasg\n""hello world!"return 0; } 字符串的结束标志是\0这个转义字符 如何证明呢&#xff1f; int main() {//字符数组 - 数组是一组相同类型的元素char arr[] "hel…...

洛谷 P1731 [NOI1999] 生日蛋糕

题目 题目链接 自己没看题解写的&#xff0c;摸石头过河&#xff0c;解释一下 首先&#xff0c;输入输出都是正整数。先搞定输入&#xff0c;再判断条件&#xff0c;如果无解&#xff0c;输出0&#xff0c;否则输出蛋糕外表面面积Q&#xff08;这里用全局变量&#xff0c;开l…...

操作教程|使用MeterSphere对恒生UFX系统进行压力测试

恒生UFX&#xff08;United Finance Exchange&#xff0c;统一金融交换&#xff09;系统&#xff08;以下简称为“UFX系统”&#xff09;&#xff0c;是一款帮助证券公司统一管理外部接入客户的系统&#xff0c;该系统整体上覆盖了期货、证券、基金、银行、信托、海外业务等各类…...

算法中的数学知识

文章目录 算法中的数学知识约数约数个数约数之和 筛法求质数阶乘分解解法一解法二&#xff1a; 欧拉函数基本模板筛法求欧拉函数大数据幂的欧拉函数 快速幂费马小定理快速幂求逆元数论分块例题&#xff1a;[因数平方和](https://www.acwing.com/problem/content/4665/)分析:具体…...

2024高频前端面试题 Vue2 和 Vue3 篇

HTML和CSS篇&#xff1a;2024高频前端面试题 HTML 和 CSS 篇-CSDN博客 JavaScript 和 ES6 篇&#xff1a; 2024高频前端面试题 JavaScript 和 ES6 篇-CSDN博客 * Vue2 和 Vue3的区别&#xff1a; 1&#xff09;双向数据绑定原理的区别 2&#xff09;根节点的不同 Vue2只能一…...

vue,Promise备忘

网址 https://www.promisejs.org/ 记录 在Vue.js或者其他JavaScript项目中&#xff0c;Promise 是一种处理异步操作的标准机制&#xff0c;用于解决传统的回调地狱问题&#xff0c;提供了一种更优雅、链式调用的编程模型。Promise对象代表一个异步操作的结果&#xff0c;它可…...

软件测试工程师职位笔试知识点细节(2)

一、软件测试分为哪几个阶段&#xff0c;生命周期&#xff1f; 软件测试一般分为单元测试、集成测试和系统测试。 需求分析→测试计划→测试设计、软件开发→测试执行→测试评估 二、一条软件缺陷&#xff08;或者叫Bug&#xff09;记录都包含了哪些内容&#xff1f; 一条Bug…...

大数据冷热分离方案

数据冷热分离方案 1、背景 ​ 随着业务的发展&#xff0c;在线表中的数据会逐渐增加。常规业务都有冷热数据现象明显的特性&#xff08;需要访问的都是近期产生的热数据&#xff1b;时间久远的冷数据出于备份、备案溯源等诉求会进行在线保留&#xff09;。在业务表数据 量可控…...

Vue3中Vue Router的使用区别

在 Vue 3 中&#xff0c;useRouter 和 useRoute 是两个用于 Vue Router 的 Composition API 函数&#xff0c;它们的用途和返回的对象不同&#xff0c;接下来详细了解一下它们的区别以及如何正确使用它们。 useRouter useRouter 用于获取 router 实例&#xff0c;这个实例提供…...

Open CASCADE学习|读取STEP模型文件到XDE中

目录 1、XDE组件简介 2、读取STEP模型文件到XDE中的步骤 3、案例 1、XDE组件简介 Open CASCADE的XDE&#xff08;扩展数据交换&#xff09;组件是一个关键的工具&#xff0c;它允许用户通过转换附加到几何BREP&#xff08;边界表示&#xff09;数据的附加数据来扩展数据交换…...

flink:自定义数据分区

shuffle随机地将数据分配到下游的子任务。 rebalance用round robbin模式将数据分配到下游的子任务。 global把所有的数据都分配到一个分区。 partitionCustom: 自定义数据分区。 package cn.edu.tju.demo; import org.apache.flink.api.common.functions.; import org.apache…...

力扣图论篇

以下思路来自代码随想录以及官方题解。 文章目录 797.所有可能的路径200.岛屿数量130.被围绕的区域1020.飞地的数量 797.所有可能的路径 给你一个有 n 个节点的 有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不…...

图腾柱PFC工作原理:一张图

视屏链接&#xff1a; PFC工作原理...

MongoDB开启事务

MongoDB开启事务 配置单节点。到路径C:\Program Files\MongoDB\Server\4.0\bin 使用记事本以管理员权限打开文件mongod.cfg添加如下配置&#xff1a; replication:replSetName: rs02. 重启MongoDB服务 3. 重启后执行命令 rs.initiate()...

风车IM即时通讯系统APP源码DJ2403版完整苹果安卓教程

关于风车IM&#xff0c;你在互联网上能随便下载到了基本都是残缺品&#xff0c; 经过我们不懈努力最终提供性价比最高&#xff0c;最完美的版本&#xff0c; 懂货的朋友可以直接下载该版本使用&#xff0c;经过严格测试&#xff0c;该版本基本完美无缺。 1.宝塔环境如下: Ngin…...

新增流计算计数窗口,TDengine 3.2.3.0 八大板块功能更新

自发布以来&#xff0c;TDengine 3.0 版本在研发人员和社区用户的共同努力下不断优化&#xff0c;产品的稳定性和易用性获得了大幅提升&#xff0c;在知轮科技的智慧轮胎系统、黑格智能 3D 打印业务、韵达快递业务、中国地震台网中心、中移物联智慧出行场景等众多企业项目中获得…...

【架构笔记3】做“用心”之人

凡事就怕“用心”二字&#xff0c;但是用心做事&#xff0c;其实如果没有前提和详情&#xff0c;这本就是一句正确的废话&#xff0c;在一些项目开发和落地过程中&#xff0c;我也有了一些新的体会&#xff0c;自认为不是多余。 我觉得心这个词至少包含四个含义&#xff1a;“…...

前端加密面面观:常见场景与方法解析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

突破编程_前端_JS编程实例(目录导航)

1 开发目标 目录导航组件旨在提供一个滚动目录导航功能&#xff0c;使得用户可以方便地通过点击目录条目快速定位到对应的内容标题位置&#xff0c;同时也能够随着滚动条的移动动态显示当前位置在目录中的位置&#xff1a; 2 详细需求 2.1 标题提取与目录生成 组件需要能够自…...

扩展学习|系统理解数字经济

文献来源&#xff1a;[1]肖静华,胡杨颂,吴瑶.成长品&#xff1a;数据驱动的企业与用户互动创新案例研究[J].管理世界,2020,36(03):183-205.DOI:10.19744/j.cnki.11-1235/f.2020.0041. [2]陈晓红,李杨扬,宋丽洁等.数字经济理论体系与研究展望[J].管理世界,2022,38(02):208-22413…...

下篇:欠拟合——那个还没开始就放弃的“躺平族”

一、欠拟合有什么作用&#xff1f;——它是个“最低标准报警器” 先说直白点&#xff1a;欠拟合本身不是好事&#xff0c;但“发现欠拟合”这件事非常有用。作用1&#xff1a;它是模型复杂度的“下限检测器” 你训练一个模型&#xff0c;发现训练集准确率只有55%&#xff08;而…...

外发文件失控?巴别鸟把断线的风筝拉回来

一位制造业的IT负责人最近向我们诉苦&#xff1a;他们给供应商外发了3D设计文件&#xff0c;对方擅自二次转发给了竞争对手。他花了整整两周才弄清楚文件流向了哪里&#xff0c;而此时损失已经造成。 这几乎是企业文件管理的"经典困境"——文件一旦离开内网&#xff…...

计算机视觉基础模型深度解析:13类算法、85个变种完全指南

计算机视觉基础模型深度解析&#xff1a;13类算法、85个变种完全指南做计算机视觉的兄弟应该知道&#xff0c;标注数据是真tm贵。为了不花这个钱&#xff0c;各路神仙开始用无标注数据、网上爬的图文数据、甚至多模态数据来训练模型。用对比学习、掩码重建这些方法整一个基础模…...

微信小程序的武夷山垃圾分类知识科普

目录同行可拿货,招校园代理 ,本人源头供货商功能定位核心功能模块技术实现特点用户体验优化项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能定位 微信小程序“武夷山垃圾分类知识科…...

BP神经网络交叉验证算法与确定最佳隐含层节点数Matlab程序(直接运行、数据Excel格式、...

bp神经网络交叉验证算法和确定最佳隐含层节点个数matlab 程序&#xff0c;直接运行即可。 数据excel格式&#xff0c;注释清楚&#xff0c;效果清晰&#xff0c;一步上手。BP 神经网络交叉验证与隐含层节点自寻优工具包功能说明书一、产品定位本工具包面向“零算法背景”的实验…...

BEAST 2 贝叶斯进化分析:从新手到专家的完整指南

BEAST 2 贝叶斯进化分析&#xff1a;从新手到专家的完整指南 【免费下载链接】beast2 Bayesian Evolutionary Analysis by Sampling Trees 项目地址: https://gitcode.com/gh_mirrors/be/beast2 BEAST 2&#xff08;Bayesian Evolutionary Analysis by Sampling Trees&a…...

Windows 11任务栏歌词插件:让音乐与工作无缝融合

Windows 11任务栏歌词插件&#xff1a;让音乐与工作无缝融合 【免费下载链接】Taskbar-Lyrics BetterNCM插件&#xff0c;在任务栏上嵌入歌词&#xff0c;目前仅建议Windows 11 项目地址: https://gitcode.com/gh_mirrors/ta/Taskbar-Lyrics 还在为听歌时频繁切换窗口查…...

收藏!程序员/小白入门大模型不踩坑,从0到1转行学习全攻略

这两年&#xff0c;大模型彻底打破了实验室的壁垒&#xff0c;从高冷的技术研究&#xff0c;走进了每一位程序员、学生、转行者的日常工作和职业规划里。打开聊天框&#xff0c;总能看到相关的讨论&#xff1b;梳理职业路径&#xff0c;大模型相关岗位也成了热门选择。 几乎每天…...

如何轻松实现跨设备控制:Barrier跨平台KVM软件完全指南

如何轻松实现跨设备控制&#xff1a;Barrier跨平台KVM软件完全指南 【免费下载链接】barrier Open-source KVM software 项目地址: https://gitcode.com/gh_mirrors/ba/barrier 你是否厌倦了在多台电脑之间来回切换键盘鼠标&#xff1f;Barrier作为一款强大的开源KVM软件…...

gte-base-zh快速上手:Xinference框架下的文本嵌入模型部署实战

gte-base-zh快速上手&#xff1a;Xinference框架下的文本嵌入模型部署实战 1. 引言&#xff1a;认识gte-base-zh文本嵌入模型 文本嵌入技术是自然语言处理中的核心基础&#xff0c;它能够将文字转换为计算机可理解的数字向量。gte-base-zh作为阿里巴巴达摩院基于BERT框架训练…...