针对考研的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语言中,单字符可以用进行比较也可以用 > , < ,但是字符串却不能用直接比较,需要用strcmp函数。 strcmp 函数的原型定义在 <string.h> 头文件中,其定义如下: int strcmp(const …...
[C++][IO流][流输入输出][截断理解]详细讲解
目录 1.流输入输出说明1.<<执行顺序2.>>执行顺序 2.截断(trunc)理解 1.流输入输出说明 1.<<执行顺序 链式操作的顺序:当使用多个<<操作符进行链式插入时,执行顺序是从左到右的 每个<<操作都将数据插入到前一个流的输出中…...
阿里云部署1Panel(失败版)
官网脚本部署不成功 这个不怪1panel,这个是阿里Linux 拉不到docker的下载源,懒得思考 正常部署直接打开官网 https://1panel.cn/docs/installation/online_installation/ 但是我使用的阿里云os(Alibaba Cloud Linux 3.2104 LTS 64位) 我执行不管用啊装不上docker 很烦 curl -s…...
九、设备的分配与回收
1.设备分配时应考虑的因素 ①设备的固有属性 设备的固有属性可分为三种:独占设备、共享设备、虚拟设备。 独占设备 一个时段只能分配给一个进程(如打印机) 共享设备 可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备而微观上交替使用。 …...
单片机的原理及应用
单片机的原理及应用 1. 单片机的基本原理 1.1. 组成部分 单片机主要由以下几个部分组成: 中央处理器(CPU):执行指令并控制整个系统的操作。 存储器: 程序存储器(Flash):存储用户…...
Python数据分析篇--NumPy--入门
我什么也没忘,但是有些事只适合收藏。不能说,也不能想,却又不能忘。 -- 史铁生 《我与地坛》 NumPy相关知识 1. NumPy,全称是 Numerical Python,它是目前 Python 数值计算中最重要的基础模块。 2. NumPy 是针对多…...
OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建
判题机模块预开发(架构师)(工厂模式) 判题机模块 是为了把代码交个代码沙箱去处理 得到结果返回 代码沙箱 梳理判题模块和代码沙箱的关系 判题模块:调用代码沙箱 把代码和输入交给代码沙箱去执行 代码沙箱:只负责接受代码和输入 返回编译的结果 不负…...
linux 目录文件夹操作
目录 查看文件夹大小: Linux统计文件个数 2.统计文件夹中文件个数ls -l ./|grep "^-"|wc -l 4.统计文件夹下文件个数,包括子文件ls -lR | grep "^-"| wc -l 统计文件个数 移动绝对目录: 移动相对目录 test.py报错…...
(Linux驱动学习 - 4).Linux 下 DHT11 温湿度传感器驱动编写
DHT11的通信协议是单总线协议,可以用之前学习的pinctl和gpio子系统完成某IO引脚上数据的读与写。 一.在设备树下添加dht11的设备结点 1.流程图 2.设备树代码 (1).在设备树的 iomuxc结点下添加 pinctl_dht11 (2).在根…...
前端登录页面验证码
首先,在el-form-item里有两个div,各占一半,左边填验证码,右边生成验证码 <el-form-item prop"code"><div style"display: flex " prop"code"><el-input placeholder"请输入验证…...
【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上)
系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上) 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(下) 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上) 文…...
使用 Nginx 和 Gunicorn 部署 Flask 项目详细教程
使用 Nginx 和 Gunicorn 部署 Flask 项目详细教程 在这篇文章中,我们将介绍如何使用 Nginx 和 Gunicorn 来部署一个 Flask 项目。这种部署方式非常适合在生产环境中使用,因为它能够提供更好的性能和更高的稳定性。 目录 Flask 项目简介环境准备Gunico…...
linux中bashrc和profile环境变量在Shell编程变量的传递作用
在 Linux 系统中,.bashrc文件和.profile文件都是用于配置用户环境的重要文件,它们之间有以下关联: 一、作用相似性 环境设置:两者都用于设置用户的环境变量和启动应用程序的配置。例如,它们可以定义路径变量…...
数据结构-4.2.串的定义和基本操作
一.串的定义: 1.单/双引号不是字符串里的内容,他只是一个边界符,用来表示字符串的头和尾; 2.空串也是字符串的子串,空串长度为0; 3.字符的编号是从1开始,不是0; 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 错误:无法写入配置文件 解决办法: 到C:\inetpub\history中找到最近一次的【CFGHISTORY_00000000XX】文件,点击进去找到applicationHost.config文件,用其覆盖C:\Win…...
Optiver股票大赛Top2开源!
Optiver股票大赛Top2开源! ↑↑↑关注后"星标"kaggle竞赛宝典 作者:杰少 Optiver第二名方案解读 简介 Optiver竞赛已经于今天结束了,竞赛也出现了极端情况,中间断崖式的情况,在Kaggle过往的竞赛中&#…...
Maven 实现依赖统一管理
Maven 实现依赖统一管理主要是通过两个关键机制:pom.xml 文件中的 <dependencies> 节点用于声明项目依赖,以及通过继承(Inheritance)和聚合(Aggregation)功能来统一管理和组织这些依赖。此外…...
【最新】微信小程序连接onenet——stm32+esp8266+onenet实现查看温湿度,控制单片机
微信小程序——stm32esp8266onenet实现查看温湿度,控制单片机 (最新已验证)stm32 新版 onenet dht11esp8266/01s mqtt物联网上报温湿度和控制单片机(保姆级教程) :↓↓👇 👇 👇 👇…...
差分(续前缀和)(含一维二维)
题目引入 开发商小 Q 买下了一条街,他想在这条街的一边盖房子。 街道可以抽象为一条数轴,而小 Q 只会在坐标在 1~n 的范围内盖房子。 首先,小 Q 将街上坐标在 1∼ 𝑛1∼ n 范围内的物体全部铲平。也就是说,在正式动工盖…...
从零构建大模型推理引擎:KV缓存、算子融合与量化优化实战
1. 项目概述:从零理解大模型推理引擎如果你正在关注大语言模型(LLM)的实际应用,特别是如何让这些动辄数百亿参数的“庞然大物”在你的本地机器或服务器上高效地跑起来,那么你很可能已经听说过“推理引擎”这个词。anik…...
制造业财务场景AI自动化方案,主流厂商横向对比 —— 2026企业级智能体选型全景盘点
进入2026年,全球制造业正处于从“自动化”向“智能共生”跨越的关键节点。 财务部门作为企业的数据中枢,其AI自动化方案已不再局限于早期的OCR识别或简单的流程脚本。 随着大模型(LLM)与智能体(Agent)技术的…...
Foundation Sites响应式设计原理:5个核心断点系统详解,打造完美移动优先体验
Foundation Sites响应式设计原理:5个核心断点系统详解,打造完美移动优先体验 【免费下载链接】foundation-sites The most advanced responsive front-end framework in the world. Quickly create prototypes and production code for sites that work …...
Pytorch图像去噪实战(七十三):ELK日志采集实战,集中分析接口异常、慢请求和用户上传问题
Pytorch图像去噪实战(七十三):ELK日志采集实战,集中分析接口异常、慢请求和用户上传问题 一、问题场景:日志散落在各个容器里,排查问题非常痛苦 图像去噪服务上线后,日志会越来越多: FastAPI访问日志 模型推理日志 Nginx访问日志 Worker任务日志 Celery错误日志 GPU异…...
告别手动重命名!Win10下用记事本写个.bat脚本,5分钟搞定图片批量编号(001.jpg到999.jpg)
零基础玩转Windows批量重命名:用记事本5分钟打造专属文件编号神器 每次旅行归来或项目结束,手机相册里堆积如山的照片总让人头疼——"IMG_20230401_123456.jpg"这类毫无规律的命名,既难查找又难管理。专业摄影师和自媒体博主们早就…...
收藏必备!小白程序员轻松入门大模型:ReAct与Reflexion核心技术与实战应用
大语言模型(LLM)在复杂任务中存在事实幻觉、缺乏实时信息等局限。本文介绍ReAct和Reflexion两大提示技术框架,ReAct通过推理与行动协同,有效解决幻觉问题;Reflexion在ReAct基础上增加自我反思机制,形成闭环…...
2026年最新英语单词AI辅助工具 帮英语学习者轻松提升背词效率
英语单词学习的核心痛点拆解我们团队做英语学习工具测评快5年了,后台收到最多的提问就是「有没有能真的提升背词效率的工具」,拆解下来行业的共性痛点其实很明确:第一是资源错配,80%的背词时间都花在已经掌握的词汇上,…...
如何用自动化脚本解放双手:淘宝淘金币全任务一键完成指南
如何用自动化脚本解放双手:淘宝淘金币全任务一键完成指南 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 还…...
管理幅度怎样设置才合理?
https://mp.weixin.qq.com/s/aoUgKUmsOUyC7wWOONMIIw...
基于语义的代码搜索工具Hypergrep:从AST解析到智能调用链分析
1. 项目概述:为什么我们需要一个“更聪明”的代码搜索工具? 如果你和我一样,每天都要在动辄几十万行、横跨多个模块和语言的代码仓库里“大海捞针”,那你肯定对传统的 grep 或 IDE 的全局搜索又爱又恨。爱的是它们简单直接&…...
