SQL 如何比较两个字符串是否完全相等

SQL 如何比较两个字符串是否完全相等,第1张

1、新建一个文件,命名为testphp。

2、在testphp文件中,使用header()方法设置页面的编码格式为utf-8,避免页面输出中文时乱码。

3、在testphp文件中,创建两个字符串,分别保存在两个变量($str1,$str2)中。

4、在testphp文件中,使用strcmp()函数比较$str1字符串与$str2字符串,结果保存在$res变量中。

5、在testphp文件中,strcmp()函数比较的结果为0时,代表两个字符串完全相等,使用if语句判断上一步结果是否为0,输出不同的提示,如下图所示。

6、在浏览器打开testphp文件,查看结果了,如下图所示。

字符串比较值用==
不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等var str1="a";
var str2="b";
var str1="a";
if(str1 == str2)
{
}
字符串比较数据类型和值用===
===如果类型不同,其结果就是不等var str2="1";
var str2="b";
var str1="a";
if(str1 === str2)
{
}

言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子:

#include <stdio h>
#include <string h>
void main (void);
void main(void)
{
char str_1 = "abc" ; char str_2 = "abc" ; char str_3 = "ABC" ;
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2 \n");
else
printf("str_1 is not equal to str_2 \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equalto str_3.\n");
}

上例的打印输出如下所示:
str_1 is equal to str_2
str_1 is not equal to str_3.

strcmp()函数有两个参数,即要比较的两个字符串。strcmp()函数对两个字符串进行大小写敏感的(case-sensitiVe)和字典式的(lexicographic)比较,并返回下列值之一:
----------------------------------------------------
返 回 值 意 义
----------------------------------------------------
<0 第一个字符串小于第二个字符串
0 两个字符串相等 ·
>0 第一个字符串大于第二个字符串
----------------------------------------------------
在上例中,当比较str_1(即“abc”)和str_2(即“abc”)时,strcmp()函数的返回值为0。然而,当比较str_1(即"abc")和str_3(即"ABC")时,strcmp()函数返回一个大于0的值,因为按ASCII顺序字符串“ABC”小于“abc”。
strcmp()函数有许多变体,它们的基本功能是相同的,都是比较两个字符串,但其它地方稍有差别。下表列出了C语言提供的与strcmp()函数类似的一些函数:
-----------------------------------------------------------------
函 数 名 作 用
-----------------------------------------------------------------
strcmp() 对两个字符串进行大小写敏感的比较
strcmpi() 对两个字符串进行大小写不敏感的比较
stricmp() 同strcmpi()
strncmp() 对两个字符串的一部分进行大小写敏感的比较
strnicmp() 对两个字符串的一部分进行大小写不敏感的比较
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函数代替strcmp()函数,则程序将认为字符串“ABC”等于“abc”。

比较两个字符串是否相等,最常见的方法就是使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical”类型也要求一样;后者要求“equal”,值相同就可以了,参考1。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在那里不同。我的思路是单字符串分割为一个个字母(character),这样比较就能精确知道在那个位置不同了。分隔字符串,使用“str_split”就可以了,语法参考2。然后输出结果数组,好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。 也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,
一般能用 !=, == 比较两个对象是否相等,只所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如
$a = "joe";
$b = "jerry";
if ($a != $b)
{
echo "不相等";
}
else
{
echo "相等";
}
如果用 !==,===(能看到多了一个等号)比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较
22 == "22"; // 返回 true
22 === "22"; // 返回false
正因为这样,所以我们的程式时常会发生一些想不到的“意外”:
0 == "我爱你"; // 返回true
1 == "1 我爱你";// 返回true
php教程里更有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),他们都是如果前者比后者大,则返回大于0的整数;如果前者比后者小,则返回小于0的整数;如果两者相等,则返回0他们比较的原理和其他语言的规则都是相同的。
strcmp是用于区分大小写(即大小写敏感)的字符串比较:
echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比较的是 "b"和"b"
strcasecmp用于不区分大小写的字符串比较:
echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比较的是"d"和"e"
strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0), 比较了 abc 和 abc
strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比较了 abc 和 abc, 由于不区分大小写,所以两者是相同的。
更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10gif 会比 5gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10gif比5gif,针对这种情况,php提供了两个自然对比的函数strnatcmp,strnatcasecmp:
echo strnatcmp("10gif", "5gif"); // 返回 1 (>0)
echo strnatcasecmp("10gif", "5gif"); // 返回 1 (>0)

方法/步骤

一、数据准备。如图所示,这里有两个字符串1和2,现在需要判断两个字符串是否完全相同。

二、插入公式。如图所示,选择excel菜单栏中的“公式”,在其页面下选择“文本”类公式。

三、选择EXACT函数。如图所示,在“文本”公式下拉菜单中选择EXACT函数。

四、输入字符串。如图所示,在EXACT函数的对话框中,输入需要对比的两组字符串。

五、结果浏览。如图所示,在“是否相同”菜单栏中显示有TRUE和FALSE,前者表示两个字符串相同,后者表示两个字符串不同。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13072811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存