【C语言】:字符和字符串中的字符比较

news2024/9/20 14:38:30

1.入门

当我们想要一个字符和字符串中的某个字符进行比较时,可以直接用“==”进行比较。

为什么可以用“==”?

因为字符是存放在常量区,字符变量的值是固定的,字符之间的比较,本质上是对字符的ASCII比较。ASCII_百度百科 (baidu.com)

1.如果字符串是字符指针的形式

字符串指针的地址,就是字符串中第一个字符的地址,指针的地址+1,就是字符串中第二个字符的地址,依次类推,我们对地址解引用,就可以得到字符串中某个位置的字符,这样就可以进行字符与字符之间的比较了。

 2.如果字符串是字符数组的形式

就利用数组下标,获取对应位置的字符,然后进行字符之间的比较即可。 

2.提升 

理解了字符串与字符的比较,上面是将字符串中的字符提取出来,与另一个字符进行比较,其实我们还可以将字符强制转换成字符串,进行字符串之间的比较。不过,字符串之间的比较大小,本质上会转换成字符之间的大小比较。

我们可以模拟strcmp函数, 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
int strcmp_imi(const char* arr1, const char* arr2)
{
	assert(arr1 && arr2);
	while (*arr1 == *arr2)
	{
		if (*arr1 == '\0' && *arr2 == '\0')
		{
			//字符串相等返回0
			return 0;
		}
		arr1++;
		arr2++;
	}
	return *arr1 - *arr2;
}
int main()
{
	char arr1[] = "";
	char arr2[] = "";
	while (1)
	{
		scanf("%s%s", arr1, arr2);
	    int jud = strcmp_imi(arr1, arr2);
		if (jud == 0)
		{
			printf("字符串相等\n");
		}
		else if (jud != 0)
		{
			printf("字符串不相等\n");
		}
	}
	
	return 0;
}

运行, 

3.总结 

  • 数组arr[i]只是形式上这么写,底层本质上是*(arr+i); 
  • 字符串之间的比较本质上会转换成字符之间的比较
  • 字符之间的比较本质是字符对应的ASC码(ASSCII)的比较 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2047880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FinalData-绿色便携免安装数据恢复软件 下载

下载地址(资源制作整理不易&#xff0c;使用需付费&#xff0c;不能接受请勿浪费时间下载)&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/17CH5tkSc2qAj-6FuGvfb9Q?pwdvyze 提取码&#xff1a;vyze

基于Java语言的能源管理系统-水电气热油数据采集系统

基于Java语言的能源管理系统-水电气热油数据采集系统 介绍 适用于高能耗企业、建筑、工厂、园区的水、电、气、热、油、空压机等能源数据采集、分析、报表&#xff1b; 基于SpringCloud的能源管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管…

string模拟

本章准备对string模拟进行讲解&#xff0c;以下是string的学习网址&#xff1a; string - C Reference (cplusplus.com) string本质可以理解为储存char类型的顺序表&#xff0c;其中string的迭代器用一个char*就可以解决。所以string类成员变量如下&#xff1a; 这里用了一个命…

PumpkinRaising靶机

端口扫描 目录扫描 访问80端口&#xff0c; 在页面上面发现提到了一个Jack&#xff0c;可能是一个用户名 f12查看源码 找到一个页面 拼接访问 查看源码 发现一个注释 解密 是一个目录 /scripts/spy.pcap 访问&#xff0c;自动下载了一个文件 wireshark打开流量包 找到第一个s…

Element plus部分组件样式覆盖记录

文章目录 一、el-button 样式二、Popconfirm 气泡确认框三、Popover 气泡卡片四、Checkbox 多选框五、Pagination 分页六、Form 表单七、Table 表格 一、el-button 样式 html&#xff1a; <el-button class"com_btn_style">button</el-button>样式覆盖…

端口隔离 Port isolation 华为交换机配置端口隔离

Port isolation 什么是端口隔离 如果用户想进行二层隔离&#xff0c;用户可以将不同的端口加入不同的VLAN&#xff0c;但这样会浪费有限的VLAN资源。采用端口隔离功能&#xff0c;可以实现同一VLAN内端口之间的隔离。用户只需要将端口加入到隔离组中&#xff0c;就可以实现隔离…

hyper-v连接显卡,hyper-v使用显卡能力、Hyper-V显卡虚拟化VMGpu设置

hyper-v连接显卡&#xff0c;hyper-v使用显卡能力、Hyper-V显卡虚拟化VMGpu设置 现在越来越多的软件在使用时&#xff0c;都会调用GPU获得更好的使用效果。如&#xff1a;浏览器的硬件加速模式。由于Nvidia和AMD都屏蔽了家用显卡虚拟化技术&#xff0c;常用的虚拟机也无法对显卡…

交互式散点图,快速提升你的PPT观赏性|每日科研绘图·24-08-17

一、散点图基础概念 散点图是一种非常直观且功能强大的图表&#xff0c;用于探索和展示两个数值变量之间的相关性。这种图表通过在二维平面上绘制数据点&#xff0c;使得观察者能够一眼看出变量间的潜在联系。 1-1&#xff1a;散点图的构成 X轴&#xff08;横轴&#xff09;&…

电话语音机器人优势很多

智能语音机器人近年来备受关注&#xff0c;受到很多个人或是企业的青睐&#xff0c;其广泛受到欢迎归因于智能语音机器人对电话销售提供了极大的帮助&#xff0c;其可以完美替代人工进行电销外呼服务&#xff0c;不间断的工作&#xff0c;不带有任何情绪色彩&#xff0c;且能实…

Hive:大数据时代的SQL魔法师

时间&#xff1a;2024年08月17日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频地址&#xff1a;https://xima.tv/1_ZRh54d?_sonic0 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋内推一下&#x…

半岛体存储器常见类型简介

前言 个人邮箱&#xff1a;zhangyixu02gmail.com在学习 ESP32 的存储器结构时&#xff0c;发现 DRAM 是 Data RAM 而非 Dynamic RAM&#xff0c;IRAM 是 Instruction RAM 而非 Internal RAM 。突然发现自己对于这一块的知识还比较混乱&#xff0c;因此查阅相关资料进行学习整理…

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(一)---UnrealCV获取深度+分割图像

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车&#xff0c;并使用通过跨平台的方式进行ROS2和UE5仿真的通讯&#xff0c;达到小车自主导航的目的。本教程使用的环境&#xff1a; ubuntu 22.04 ros2 humblewindows11 UE5.4.3python8 本系列教程将涉及以…

04-正弦波,衰减正弦波,正弦波脉冲冲串的产生

1.设置波形线宽 点击Waveforms a 2.添加Comment 3.添加正弦波 3.1先添加一个电压源 3.2增加波形窗口 3.3右键选择Advanced 3.31原始正弦波 名称含义①DC offset直流偏置②Amplitude幅值③Freq频率④Tdelay延迟⑤Theta衰减⑥Phi相位⑦Ncycles产生正弦波的个数 设置完成后&am…

数据结构与算法——BFS(广度优先搜索)

算法介绍&#xff1a; 广度优先搜索&#xff08;Breadth-First Search&#xff0c;简称BFS&#xff09;是一种遍历或搜索树和图的算法&#xff0c;也称为宽度优先搜索&#xff0c;BFS算法从图的某个节点开始&#xff0c;依次对其所有相邻节点进行探索和遍历&#xff0c;然后再…

第T8周:使用TensorFlow实现猫狗识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 文章目录 一、前期工作1.设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据 二、数据预处理1、加载数据2、再次检查数据3. 配置数据集4…

低代码开发的崛起:机遇与挑战

近年来&#xff0c;“低代码”开发平台的迅速崛起&#xff0c;已经成为IT行业中不可忽视的趋势。这些平台承诺让非专业人士也能快速构建应用程序&#xff0c;通过减少代码编写的需求&#xff0c;大幅提高开发效率。对于许多企业而言&#xff0c;低代码开发工具成为了一个加速数…

Real-Time Open-Vocabulary Object Detection:使用Ultralytics框架进行YOLO-World目标检测

Real-Time Open-Vocabulary Object Detection&#xff1a;使用Ultralytics框架进行YOLO-World目标检测 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用Ultralytics框架进行YOLO-World目标检测进行训练进行预测进行验证 扩展目标跟踪设置提示 参考文献 前言 由…

windows核心编程 第14章,虚拟内存:获取系统信息

windows核心编程 第14章&#xff0c;虚拟内存&#xff1a;获取系统信息 14,获取系统消息 文章目录 windows核心编程 第14章&#xff0c;虚拟内存&#xff1a;获取系统信息14.1 系统信息 14.1 系统信息 许多操作系统的值是根据主机而定的&#xff0c;比如页面的大小&#xff0…

无人机挂载垂直抛投灭火弹技术详解

随着城市化进程的加快&#xff0c;高层建筑、森林、化工园区等区域火灾防控难度日益增大。传统消防手段在面对复杂地形或高层火灾时&#xff0c;往往存在响应速度慢、作业难度大、人员安全风险高等问题。无人机挂载垂直抛投灭火弹技术的出现&#xff0c;为高效、安全、精准的火…

conda install vs pip install

1背景 最近使用pyinstaller打包python程序&#xff0c;启动程序的时候&#xff0c;发现了以下的报错信息 Failed to execute script "pyi_rth_pkgres" due to unhandled dll load failed while importing pyexpat后面查阅了相关文档&#xff0c;比如根据stackoverf…