C++char类型显示输出实际存储和判断相等

避坑指南:锐浪报表PictureBox打印图像常见的5大问题及解决方案 本文深入剖析了锐浪报表(Grid++Report)中PictureBox控件打印图像时常见的五大难题,包括图像源加载机制、拉伸失真、动态加载失败、跨平台兼容性及性能优化。文章提供了从原理理解到实战解决方案的完整指南,帮助开发者有效规避图像打印中的常见陷阱,确保报表输出的稳定与高质量。 阅读详情

我在写数据结构例题的时候,无意中发现这种情况

 

我是将链表的数据域的类型定义成为了char类型,代码如下

int LocateElem_L(LinkList L, ElemType e)//定位数据元素位置
{
    Lnode* p;//用我给的例子,e=2的时候,12356
    p = L->next;//指向头结点
    int j = 1;
    //cout << e;
    //cout << p->data;
    //cout << p->next->data;//这样的话分别打印出一二来
    while (p && p->data!=e)
    {
        p = p->next;
        j++;
    }
    if (p) return j;
    else return 0;
}
Lnode* LocateElem(LinkList L, ElemType e)//定位元素地址
{
    Lnode* p;
    p = L->next;
    while (p && p->data != e)
        p = p->next;
    return p;
}
cout << "元素4的位置在" << LocateElem_L(M, 4) << endl;//定位一下元素位置
cout << "元素4的地址在" << LocateElem(M, 4) << endl;//定位一下元素地址

很明显不应该是0的位置和000000的地址,也就是说这个函数并没有找到相等的值,经过判断,怀疑是char的问题,但是因为平常都是用int,关于char类型,他显示的数值和他存储的数值之间的具体关系到底是不是ASCII码里面的比较有些拿不准.

于是我首先将类型改成了int来验证代码写得对不对,没问题之后开始想写个程序验证一下

#include <iostream>

int main()
{
    char m;
    std::cin >> m;
    std::cout << m;
    if (m == 53&&m=='5')
        std::cout<<std::endl << "m是5";
}

输入5作为验证,结果如下

如图可见,输入5打印出来也是5,但是他在存储的时候不是5,而是'5'或者说是代表5的ASCII的53. 

所以我最开始往里面存储数据的时候6 5 3 2 1这样子存储
对他们来说我输入的是'6' '5' '3' '2' '1',然后如果输出出来是1 2 3 5 6(因为我在这里链表用的是头插法)按照他们的ascii码是1+48,2+48,3+48,5+48,6+48,判断相等可以用ASCII或者字符

但是问题还是没有解决,又经过寻找,我发现问题不是出在我的判断上,而是出在我的插入上

ListInsert_L(M, 4, 4);//再第四个位置插入一个4

最开始是这样的,所以我打印的时候会打印出代表传输结束的EOT,而不是字符4

修改后问题解决

总结的话就是,定义字符变量的时候注意函数传递的参数需要是char类型,int也可以,但是要注意转换关系.

手机拍照也能玩高光谱?教你用TensorFlow Lite在Android上实现实时RGB转高光谱 本文介绍了如何利用TensorFlow Lite在Android设备上实现实时RGB到高光谱的图像重构技术。通过深度学习模型优化和移动端部署策略,使智能手机具备专业级光谱分析能力,适用于农业检测、化妆品分析等多个领域。 阅读详情

相关推荐

Unity类银河战士恶魔城学习总结(P162 Improve skeleton提升敌人的效果)

为敌人添加了快慢刀

suzh1qian的博客 572

c++ char*判断相等

strncmp ( const char * str1, const char * str2, size_t n ); 【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。 字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strncmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,直到字符结束标志'\0...

一个草根敲键盘的故事 2万+

Java8动态生成SFunction:基于字段名的Lambda表达式实践

本文深入探讨了在Java8中如何基于字段名动态生成SFunction,以解决MyBatis Plus的LambdaQueryWrapper在动态查询场景下的局限性。通过核心原理LambdaMetafactory的解析和手把手的代码实现,展示了如何将字符串字段名转换为类型安全的Lambda表达式,从而实现真正动态、类型安全的查询条件构建与通用数据处理,显著提升代码的灵活性与安全性。

sss66的博客 954

C++判断两个char数组是否相等

在比较两个字符串时不能利用符号“”,“”符号比较的是两个字符串的地址是否相等,谨记!

a553455的博客 1万+

matlab电偶极子源码,电偶极子的MATLAB场模拟

电偶极子周围电场电势分布的MATLAB三维模拟Matlab可以用于模拟四维场的效果,本文以电偶极子的电场和电势场为例展示MATLAB在该方面领域的应用。摘要电偶极子由一个正电荷和一个负电荷组成,其电场和空间电势分布与单电荷相比具有一些重要的特性。本文将给出电场和电势场的近似表达式。这两个量的精确表达式是复杂的,不太常用,因此 MATLAB 被采用来操作精确值和绘制三维分布的远区域, 近区域和一侧区...

weixin_35135480的博客 3150

Hermes Agent 安装部署完全指南

Hermes Agent安装部署指南提供了两种安装方式:一键脚本安装和手动分步安装。该AI助手支持多平台运行(Linux/macOS/WSL2),核心功能仅需Git作为前置依赖,其他依赖如Python、Node.js等均由安装脚本自动处理。文档详细介绍了系统要求、依赖管理、配置目录结构、环境变量设置以及10个手动安装步骤,并提供了功能模块化选项,用户可根据需求选择安装语音交互、浏览器自动化等扩展功能。安装完成后可通过hermes doctor命令验证环境,并通过交互式向导完成初始化配置。

简简单单Onlinezuozuo 2632

c++字符串相等比较 char* char[] string

VS-C++ 系列:所有相关C++文章链接. VS-C# 系列:所有相关C#文章链接. bat 系列:所有相关bat文章链接. OpenCV 系列:所有相关OpenCV文章链接. Keil 系列:所有相关文章链接 Arduino 系列:所有相关Arduino文章链接 Git SVN 系列:所有相关Git SVN文章链接 Linux 系列:所有相关文章链接 所有内容均以最小系统调试成功;逐步提供低分源码工程下载! 保证每行代码都经过验证! 如有疑惑,欢迎留言,看见即回;祝好__by Dxg_LC

Dxg团队 882

北斗导航 | 接收机自主完好性监测(RAIM)算法近三年研究现状总结(2022-2025)

近三年RAIM算法已从传统的单故障检测演进为多星座协同、智能融合的复杂系统,在航空、自动驾驶等安全关键领域实现规模化应用。未来需重点突破城市复杂环境适应性和标准化体系建设,推动技术从"可用"向"可信"跨越。

尘世冰封的专栏 440

数据结构-串(字符串类基本实现C++)

​计算机上的非数值处理对象基本上是字符串数据。在比较早的程序设计语言中,字符串是作为输入和输出的常量出现的。随着语言的发展,产生了字符串处理,这样字符串也就作为一种变量类型出现在众多的设计语言中,也产生了许多的字符串操作,字符串一般简称为串。串(字符串)是由零个或多个字符组成的有序序列。 以上是对字符串一个基本的介绍,关于字符串其实还有很多的知识点,但是这次内容主要是根据c++中std::str...

lvchang 1284

GEE:连续变化检测 CCDC 提取断点信息(干扰时间、干扰幅度、干扰次数)

本文将介绍在 Google Earth Engine (GEE) 平台上连续变化检测与分类(Continuous Change Detection and Classification, CCDC)提取扰动时间、干扰幅度、干扰次数信息,并下载到本地的代码。

养乐多的博客 1946

【AI智能体】Dify 基于知识库搭建智能客服问答应用详解

Dify 基于知识库搭建智能客服问答应用详解

congge 6929

C_Primer第11章 字符串和字符器函数

11.1 表示字符串和字符串I/O 第4章介绍过,字符串是以空字符(\0)结尾的char类型数组。因此,可以把上一章学到的数组和指针的知识应用于字符串。不过,由于字符串十分常用,所以C提供了许多专门用于处理字符串的函数。 程序清单11.1演示了在程序中表示字符串的几种方式。 //strings1.cabs #include <stdio.h> #define MSG "I am...

荆盼的博客 1129

HFSS实战项目——高带外抑制特性SIW带通滤波器

本文对单级滤波器和双级滤波器的设计、工作原理及仿真结果进行了详细分析,并验证了双级SIW带通滤波器在性能方面的优越性,为微波通信系统中滤波器的设计和应用提供了重要参考。

2401_87464239的博客 1816

判断char类型是否相等,char与String类型的转换

** 判断char类型是否相等,char与String类型的转换 ** 判断char类型是否相等用“==”,如果要用equals,可以类型改为character类型 将char类型转为String类型,String str = String.valueOf(Char ch); ...

wendy_qgh的博客 5951

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【c++随笔26】char*、char[]比较是否相等std::strcmp

原创作者:郑同学的笔记原文链接:https://zhengjunxue.blog.youkuaiyun.com/article/details/144634814。

junxuezheng的博客 1803

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C++中输出变(判断)量类型

一般要用到头文件 #include&lt;typeinfo&gt; 像python这样的语言要判断一个变量类型是很简单的直接type(变量名)就可以。而C++中是这样用的: #include&lt;iostream&gt; #include&lt;typeinfo&gt; using namespace std; int main(){ enum Color {red,yellow,bl...

geter_CS的博客 2449

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据类型之char类型

数据类型之char类型

qqrrjj2011的博客 2549

c++ 字符串相等比较

比较两个char*字符串 或 string对象是否相等 c\c++ 1. 如果要比较的对象是char*字符串 利用: int strcmp(const char* s1,const char* s2); (1) 当s1 < s2时,返回负数; (2) 当s1 == s2时,返回值 = 0; (3) 当s1 > s2时,返回正数。 所在头文件:string.h 即:两个字符串...

leek5533的博客 6万+

c++ char字符相等比较_c++简单字符输出机实例

说c++是有多难,只学c++的伙伴可能不咋觉得,但是学过python的童鞋一定深有感触——要是Python的话三篇文章早就讲函数了好吗!也不至于到现在连分支循环都讲不完。。。往期提要:1.初识C++2.算法:冒泡排序的c++实现/1.制定目标/做一个有“特殊字符识别器”的“字符输出机”,效果如下:1.输入r时输出rr...

weixin_39888807的博客 1578

C++"char"类型的一些解释

C++&quot;char&quot;类型的一些解释&quot;char&quot;类型&quot;char&quot;类型的cin和cout &quot;char&quot;类型 C++中用char类型存储标准ASCII标准字符。char类型占用一个字节,可以有128个取值,每个取值代表一个字符,对应规则由“ASCII字符集”规定。比如,char中取值48代表着字符’0’。 char类型的变量存储的数据仍然是一个数,只是这个数在0~12

公孙川的博客 5765

C++中如何判断两个字符串数组是否相等

C++中如何判断两个字符串数组是否相等 使用函数strcmp(s1,s2) 当s<s2 返回负值 当s=s2 返回0 当s>s2返回正值 #include <iostream> #include <string.h> using namespace std; int main() { char s[] = "\a\b\1"; char s1[] = "\a\b\1"; if(strcmp(s,s1)==0){ cout << 1; } r

bubbleSweet的博客 1万+

c++,opencv,char数组无法输出值,输出了字符。char[]数组和char指针值错误,不相等问题

其他方法,也行,但可能会出现意外情况。搞不好又成了字符,要保证准确率, cout<< (int)a<<endl确实是最简单的方法。数组[计数]”也是一个char值,凭什么无法相等?你可能会问我int4个字节,char 1个字节,感觉有点浪费性能,2///::char[]数组和char指针值错误,不相等问题。这时,你想用指针,赋值写入这个char 数组[30]注意:我在这里,无法正常输出“数组[计数]”的值。1:::例:char无法输出值,输出了字符。这时,a大部分情况,输出字符。

xyyskl99的博客 504

c++中 string 和 int 类型转换

在C++编程的时候,有时需要将string类型转为int类型,则需要进行2部分: 1、首先将 字符串string 转为 C语言中的 const char* 类型(使用 _c.str()函数) 2、将 const char* 转为 int 类型(使用atoi(const char *)函数) 注意:.c_str()函数在#include<string>的头文件中 atoi()函数在#include<stdlib.h>的头文件中,如果使用,则必须包含该头文...

平凡小智 1万+

【C/C++基础】 char 字符类型

char、char*、char* []

weixin_54383080的博客 8781

char类型是有符号的么?

数据的类型转换,进制的表示形式,理解补码,重点在数值在比较时的整形提升规则。

alanesnape的博客 859

[C/C++]char、signed char 和 unsigned char 的区别在哪里???

ANSI C 提供了3种字符类型,分别是char、signed char、unsigned charchar相当于signed char或者unsigned char,但是这取决于编译器!这三种字符类型都是按照1个字节存储的,可以保存256个不同的值。signed char取值范围是 -128 到 127unsigned char 取值范围是 0 到 255但是char究竟相当于signed char呢还是相当于unsigned char呢??这就是char和int的不同之处!int==signed int

hujianwind的专栏 1092
上一篇: 串口通信波特率数据错乱
下一篇: <<啊哈算法>>链表问题及malloc和free动态内存问题
chenmozero
博客等级 码龄5年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值