为什么字符串相同却不相等c语言,c语言 字符串相等

本文目录一览:

C语言小程序:两字符串为什么不相等?

比较两个字符串是否相等,要用strcmp函数。不能直接用==比较,用==比较的是两个字符串的首地址。

C语言 字符串相等的问题

字符串的比较是逐个比较的,字符串最后一位为“\0”,while循环完,指针均指向字符串尾部,if()判断为真,说明是2个相等的字符串,返回1,不相等返回0;scanf()是要存放的变量的地址,这个是有标准的;c是比较底层的,可以让我们详细知道函数的运作,不比其它语言,只知道怎么用便可

C语言测试字符串是否相等,为什么下面两个字符串被认为不等,可如果我把字符空间扩大到十以上又相等了?

1~9有九个数,你的数组长度只有9.你的字符串结束标记“ \0”存在哪里的?

请把数组长度都先改成10或以上.

arr[8] == ‘9’ arr[8] 后面的东西你知道是什么东西么? 天知道内存顺序是怎么分配的,天知道你不申请足够的内存,那个‘\0’什么时候才会遇到。

天知道arr[8] tmp[8]之后是什么? 你没有手动设置 \0 或没有足够的空间让编译器帮助你添加’\0′ 结束标记,程序就一直往后面找直到有一个结束.

***

思考一下:假如你是一个 strcmp函数,别人传入的参数就只有两地字符串的首地址,你从这两个首地址对应的字符开始比较,一个一个往后比较,什么时候停止了? 莫非不停止比到天荒地老.

先学习正确的写法,错误的写法为什么有时候会错有时候会对先别研究了。

理解一下strcmp的实现逻辑.

int strcmp( char* s , char* t)

{

int ret_val = 0;

while(*s *t) /* 两个同时不为结束标志 */

{

if(*s *t)

{

return 1;

}

else if(*s == *t)

{

/*若相等则去比较下一个字符*/

s++;

t++;

}

else

{

return -1;

}

}

/*其中有一个为0*/

if(*s *t)

{

/* *s != 0 , *t == 0 */

return 1;

}

else if(*s == *t)

{

/* 两个都为0 */

return 0;

}

else

{

/* *s == 0 , *t != 0 */

return -1;

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/193166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-01 14:59
下一篇 2024-12-01 14:59

相关推荐

  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python中将字符串转化为浮点数

    本文将介绍在Python中将字符串转化为浮点数的常用方法。在介绍方法之前,我们先来思考一下这个问题应该如何解决。 一、eval函数 在Python中,最简单、最常用的将字符串转化为…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • Python如何将字符串1234变成数字1234

    Python作为一种广泛使用的编程语言,对于数字和字符串的处理提供了很多便捷的方式。如何将字符串“1234”转化成数字“1234”呢?下面将从多个方面详细阐述Python如何将字符…

    编程 2025-04-29

发表回复

登录后才能评论