c语言两个字符串是否相等

我在做程序的时候遇到了一个比对两个字符串是否相等的问题,便特别做了一个测试,可这为啥输出了一个-1啊,不应该是0吗?有人可以解释的话我还想请问一下怎么比对两个不同大小的字符串中的内容是否相等

把s1和s2的数组大小至少定义为3
字符串应包含字符串结束标志'\0'追问

请问能不能解释一下原因,以及我的第二个问题

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-11
有没有加string.h头文件呢?追问

没有加就直接报错了

追答

那应该是楼下所说的问题了,

我试了一下,我的编译器比较严,直接报错了。

"cd"  其实有3个字符型常量:

'c'  'd'  '\0' (这是默认的结束符)

而你的s1,s2只开了两个字符型变量,所以放不下

你的第二个问题

帮你在CSDN上搜了下:

字符串比较函数strcmp

格式:  strcmp(字符数组名1,字符数组名2)

功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。

    字符串1=字符串2,返回值=0;

    字符串2〉字符串2,返回值〉0;(1)

    字符串1〈字符串2,返回值〈0。(-1)

本函数也可用于比较两个字符串常量,或比较数组和字符串常量。

求!采!纳!

相似回答