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

针对考研的C语言学习(定制化快速掌握重点2)

1.C语言中字符与字符串的比较方法

在C语言中,单字符可以用==进行比较也可以用 > , < ,但是字符串却不能用直接比较,需要用strcmp函数。

strcmp 函数的原型定义在 <string.h> 头文件中,其定义如下:

int strcmp(const char *s1, const char *s2);

strcmp 函数的返回值如下:

  • 如果 s1 小于 s2(即 s1 在字典序中排在 s2 之前),返回一个负整数。
  • 如果 s1 等于 s2,返回 0。
  • 如果 s1 大于 s2(即 s1 在字典序中排在 s2 之后),返回一个正整数。
#include <stdio.h>
#include <string.h>int main() 
{const char *str1 = "hello";const char *str2 = "world";const char *str3 = "hello";printf("Comparing '%s' and '%s': %d\n", str1, str2, strcmp(str1, str2)); // 输出负整数printf("Comparing '%s' and '%s': %d\n", str1, str3, strcmp(str1, str3)); // 输出 0return 0;
}
在这个示例中,strcmp(str1, str2) 会返回一个负整数,因为 "hello" 在字典序中排在 "world" 之前;而 strcmp(str1, str3) 会返回 0,因为两个字符串是相同的。

单字符可以直接比较

对于字符数组进行赋值,只能用strcpy函数进行赋值或者在初始化时赋值

但是对于字符指针可以直接赋值

2.字符数组的一些坑点

先抛出问题

为啥ch数组打印出来是乱码,而ch2打印却好好地。

原因:

printf通过%s 打印字符串时,原理是依次输出每个字符,当读到结束符'\0'时,结束打印;

因为 %s 期望字符串以 \0 结束,所以pirintf输出时,ch找不到结束标志符号,就会内存越界,导致乱码。

因此对于字符串初始化尽量用下面的方式也是最常用的方式,他会自动补'\0';

char str[] = "word";
//或者以下
char str[长度]={0};
strcpy(str,"字符串");

fgets使用方法(更安全)

fgets(char* _Buffer,int _MaxCount,FILE* _Stream);

他会自动截止并且补充结束标志符,第二个参数既是最大长度,但实际存储只能是最大长度-1,因为要留一个给结束标志符。

3.缓冲区的坑

scanf与缓冲区的结合导致的坑!!!

上面图片中为啥是这样呢???

若是scanf读取数据时,分开读取时而读取字符的前面刚好有读取非字符数据时,会在缓冲区残留'\n'-----回车键

因此会把缓冲区的'\n'赋值给下面的字符类型数据,导致数据错误.所以需要再他俩之间进行主动清空缓冲区

同理:fgets使用也会遇到缓冲区的坑!!!

#include<stdio.h>
#include<stdlib.h>int main()
{int n = 0;scanf("%d", &n);//因为接下来要存入的字符串,故要清楚此时缓冲区残留的'\n'getchar();char* p = (char*)malloc(n);fgets(p, n, stdin);printf("%s\n", p);free(p);return 0;
}

4.结构体内存对齐

【注】这里说的最大成员的大小是指的是成员变量的 类型大小 所比的大小

对于考研指导上面的结论即可。但若是想深入了解可以继续看下面解释

相关文章:

针对考研的C语言学习(定制化快速掌握重点2)

1.C语言中字符与字符串的比较方法 在C语言中&#xff0c;单字符可以用进行比较也可以用 > , < ,但是字符串却不能用直接比较&#xff0c;需要用strcmp函数。 strcmp 函数的原型定义在 <string.h> 头文件中&#xff0c;其定义如下&#xff1a; int strcmp(const …...

[C++][IO流][流输入输出][截断理解]详细讲解

目录 1.流输入输出说明1.<<执行顺序2.>>执行顺序 2.截断(trunc)理解 1.流输入输出说明 1.<<执行顺序 链式操作的顺序&#xff1a;当使用多个<<操作符进行链式插入时&#xff0c;执行顺序是从左到右的 每个<<操作都将数据插入到前一个流的输出中…...

阿里云部署1Panel(失败版)

官网脚本部署不成功 这个不怪1panel,这个是阿里Linux 拉不到docker的下载源,懒得思考 正常部署直接打开官网 https://1panel.cn/docs/installation/online_installation/ 但是我使用的阿里云os(Alibaba Cloud Linux 3.2104 LTS 64位) 我执行不管用啊装不上docker 很烦 curl -s…...

九、设备的分配与回收

1.设备分配时应考虑的因素 ①设备的固有属性 设备的固有属性可分为三种:独占设备、共享设备、虚拟设备。 独占设备 一个时段只能分配给一个进程(如打印机) 共享设备 可同时分配给多个进程使用(如磁盘)&#xff0c;各进程往往是宏观上同时共享使用设备而微观上交替使用。 …...

单片机的原理及应用

单片机的原理及应用 1. 单片机的基本原理 1.1. 组成部分 单片机主要由以下几个部分组成&#xff1a; 中央处理器&#xff08;CPU&#xff09;&#xff1a;执行指令并控制整个系统的操作。 存储器&#xff1a; 程序存储器&#xff08;Flash&#xff09;&#xff1a;存储用户…...

Python数据分析篇--NumPy--入门

我什么也没忘&#xff0c;但是有些事只适合收藏。不能说&#xff0c;也不能想&#xff0c;却又不能忘。 -- 史铁生 《我与地坛》 NumPy相关知识 1. NumPy&#xff0c;全称是 Numerical Python&#xff0c;它是目前 Python 数值计算中最重要的基础模块。 2. NumPy 是针对多…...

OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建

判题机模块预开发(架构师)(工厂模式) 判题机模块 是为了把代码交个代码沙箱去处理 得到结果返回 代码沙箱 梳理判题模块和代码沙箱的关系 判题模块&#xff1a;调用代码沙箱 把代码和输入交给代码沙箱去执行 代码沙箱&#xff1a;只负责接受代码和输入 返回编译的结果 不负…...

linux 目录文件夹操作

目录 查看文件夹大小&#xff1a; Linux统计文件个数 2.统计文件夹中文件个数ls -l ./|grep "^-"|wc -l 4.统计文件夹下文件个数&#xff0c;包括子文件ls -lR | grep "^-"| wc -l 统计文件个数 移动绝对目录&#xff1a; 移动相对目录 test.py报错…...

(Linux驱动学习 - 4).Linux 下 DHT11 温湿度传感器驱动编写

DHT11的通信协议是单总线协议&#xff0c;可以用之前学习的pinctl和gpio子系统完成某IO引脚上数据的读与写。 一.在设备树下添加dht11的设备结点 1.流程图 2.设备树代码 &#xff08;1&#xff09;.在设备树的 iomuxc结点下添加 pinctl_dht11 &#xff08;2&#xff09;.在根…...

前端登录页面验证码

首先&#xff0c;在el-form-item里有两个div&#xff0c;各占一半&#xff0c;左边填验证码&#xff0c;右边生成验证码 <el-form-item prop"code"><div style"display: flex " prop"code"><el-input placeholder"请输入验证…...

【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上)

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;上&#xff09; 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;下&#xff09; 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇&#xff08;上&#xff09; 文…...

使用 Nginx 和 Gunicorn 部署 Flask 项目详细教程

使用 Nginx 和 Gunicorn 部署 Flask 项目详细教程 在这篇文章中&#xff0c;我们将介绍如何使用 Nginx 和 Gunicorn 来部署一个 Flask 项目。这种部署方式非常适合在生产环境中使用&#xff0c;因为它能够提供更好的性能和更高的稳定性。 目录 Flask 项目简介环境准备Gunico…...

linux中bashrc和profile环境变量在Shell编程变量的传递作用

在 Linux 系统中&#xff0c;.bashrc文件和.profile文件都是用于配置用户环境的重要文件&#xff0c;它们之间有以下关联&#xff1a; 一、作用相似性 环境设置&#xff1a;两者都用于设置用户的环境变量和启动应用程序的配置。例如&#xff0c;它们可以定义路径变量&#xf…...

数据结构-4.2.串的定义和基本操作

一.串的定义&#xff1a; 1.单/双引号不是字符串里的内容&#xff0c;他只是一个边界符&#xff0c;用来表示字符串的头和尾&#xff1b; 2.空串也是字符串的子串&#xff0c;空串长度为0&#xff1b; 3.字符的编号是从1开始&#xff0c;不是0&#xff1b; 4.空格也是字符&a…...

fastzdp_redis第一次开发, 2024年9月26日, Python操作Redis零基础快速入门

提供完整录播课 安装 pip install fastzdp_redisPython连接Redis import redis# 建立链接 r redis.Redis(hostlocalhost, port6379, db0)# 设置key r.set(foo, bar)# 获取key的值 print(r.get(foo))RESP3 支持 简单的理解: 支持更丰富的数据类型 参考文档: https://blog.c…...

文件名:\\?\C:\Windows\system32\inetsrv\config\applicationHost.config错误:无法写入配置文件

文件名: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config 错误:无法写入配置文件 解决办法&#xff1a; 到C:\inetpub\history中找到最近一次的【CFGHISTORY_00000000XX】文件&#xff0c;点击进去找到applicationHost.config文件&#xff0c;用其覆盖C:\Win…...

Optiver股票大赛Top2开源!

Optiver股票大赛Top2开源&#xff01; ↑↑↑关注后"星标"kaggle竞赛宝典 作者&#xff1a;杰少 Optiver第二名方案解读 简介 Optiver竞赛已经于今天结束了&#xff0c;竞赛也出现了极端情况&#xff0c;中间断崖式的情况&#xff0c;在Kaggle过往的竞赛中&#…...

Maven 实现依赖统一管理

Maven 实现依赖统一管理主要是通过两个关键机制&#xff1a;pom.xml 文件中的 <dependencies> 节点用于声明项目依赖&#xff0c;以及通过继承&#xff08;Inheritance&#xff09;和聚合&#xff08;Aggregation&#xff09;功能来统一管理和组织这些依赖。此外&#xf…...

【最新】微信小程序连接onenet——stm32+esp8266+onenet实现查看温湿度,控制单片机

微信小程序——stm32esp8266onenet实现查看温湿度&#xff0c;控制单片机 &#xff08;最新已验证&#xff09;stm32 新版 onenet dht11esp8266/01s mqtt物联网上报温湿度和控制单片机(保姆级教程) &#xff1a;↓↓&#x1f447; &#x1f447; &#x1f447; &#x1f447…...

差分(续前缀和)(含一维二维)

题目引入 开发商小 Q 买下了一条街&#xff0c;他想在这条街的一边盖房子。 街道可以抽象为一条数轴&#xff0c;而小 Q 只会在坐标在 1~n 的范围内盖房子。 首先&#xff0c;小 Q 将街上坐标在 1∼ &#x1d45b;1∼ n 范围内的物体全部铲平。也就是说&#xff0c;在正式动工盖…...

F_Record:让Photoshop绘画过程录制变得简单高效的轻量级插件

F_Record&#xff1a;让Photoshop绘画过程录制变得简单高效的轻量级插件 【免费下载链接】F_Record 一款用来录制绘画过程的轻量级PS插件 项目地址: https://gitcode.com/gh_mirrors/fr/F_Record 在数字艺术创作领域&#xff0c;每一笔笔触都承载着创作者的灵感与思考。…...

ComfyUI实战:如何加载基于Flux.1微调的LoRA模型并优化推理流程

最近在项目里用 ComfyUI 部署基于 Flux.1 微调的 LoRA 模型&#xff0c;踩了不少坑。从模型加载失败到推理时显存爆炸&#xff0c;问题层出不穷。经过一番折腾&#xff0c;总算梳理出一套比较稳定的流程&#xff0c;这里把实战经验记录下来&#xff0c;希望能帮到有同样需求的同…...

AI原生应用:解决幻觉难题的有效途径

AI原生应用:解决幻觉难题的有效途径 关键词:AI原生应用、大模型幻觉、检索增强生成(RAG)、验证模块、智能系统架构 摘要:大语言模型(LLM)的“幻觉”(Hallucination)问题——生成与事实不符的内容,正成为AI应用落地的最大障碍。本文将从“AI原生应用”的视角出发,用通…...

PlugY:暗黑2单机玩家必备的生存工具包,开启无限可能游戏体验 [特殊字符]

PlugY&#xff1a;暗黑2单机玩家必备的生存工具包&#xff0c;开启无限可能游戏体验 &#x1f525; 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 还在为暗黑破坏神…...

N_m3u8DL-RE流媒体下载器终极指南:5分钟掌握加密视频下载与直播录制

N_m3u8DL-RE流媒体下载器终极指南&#xff1a;5分钟掌握加密视频下载与直播录制 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器&#xff0c;支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/…...

策划和程序不再打架:Unity+Excel打造可视化游戏数据配置工作流

Unity与Excel深度整合&#xff1a;构建高效游戏数据配置系统 在中小型游戏开发团队中&#xff0c;策划与程序之间的数据流转往往是效率瓶颈所在。策划需要频繁调整数值平衡&#xff0c;而程序员则疲于应对无尽的配置表更新请求。这套基于UnityExcel的工作流解决方案&#xff0c…...

英飞凌Aurix2G TC3XX 中断路由与DMA联动实战解析

1. 中断与DMA联动的核心价值 第一次接触英飞凌Aurix2G TC3XX的中断路由功能时&#xff0c;我像发现新大陆一样兴奋。传统嵌入式开发中&#xff0c;ADC采样完成→CPU读取数据→存入内存的流程就像用勺子一勺一勺地运水&#xff0c;而中断触发DMA的机制则像接上了自来水管——数据…...

【高精度气象】预报误差不是技术小问题,而是2026新能源企业利润表里的隐形黑洞

当一场风速预测偏差让电厂在现货市场中多交千万罚金&#xff0c;当一次辐照度低估导致交易策略全盘错配——气象误差&#xff0c;正在从“技术指标”变成“财务黑洞”。2026年3月&#xff0c;一份来自陕西能源气象服务的最新数据显示&#xff0c;基于AI模型的风电场功率预测偏差…...

解锁毕业论文新姿势:书匠策AI,你的学术“超级外挂”!

在学术的征途上&#xff0c;毕业论文无疑是每位学子必须跨越的一道重要关卡。它不仅是对你大学四年学习成果的全面检验&#xff0c;更是你迈向学术殿堂或职场的重要敲门砖。然而&#xff0c;面对堆积如山的资料、错综复杂的逻辑结构&#xff0c;以及那令人头疼的格式要求&#…...

w3x2lni:魔兽地图跨版本转换的技术突破与实践指南

w3x2lni&#xff1a;魔兽地图跨版本转换的技术突破与实践指南 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 问题引入&#xff1a;版本壁垒下的魔兽地图开发困境 在魔兽争霸III的地图开发领域&#xff0c;版本迭…...