-->
当前位置:首页 > 题库 > 正文内容

程序填空题:字符串的比较

Luz4年前 (2021-11-13)题库1666
C语言中对字符的比较依赖的是字符的编码,默认使用了ASCII作为编码标准,每一个字符都对应了一个整数值。比如字符'0’的ASCII值是48,'A’的ASCII值是65,'a’的ASCII值是97。字符之间大小比较时,会对它们的编码值进行比较,'A'是小于'B'的,'A'是小于'a'等等。

那么字符串之间可以比较大小吗?字符串"China"与"America"哪个大呢?

这个回答是肯定的,在 C 语言中,我们通常遵循的是一种特殊的定义——字典序。

我们通过例子理解下字典序:

对于字符串"abc"和"bbc"的大小关系——我们首先会对它们的第一个字符进行比较, 我们发现第一个字符'a' < 'b'时,我们就可以明确"abc" < "bbc"的结论。

对于字符串"abc"和"abd"的大小关系——我们首先会对它们的第一个字符进行比较,如果第一个字符相同,则会接下来比较第二个字符;如果第二个字符相同,则会接下来比比较第三个字符;当我们发现第三个字符'c' < 'd'时,我们就得到了"abc" < "abd"的结论。

对于字符串"abc"和"ab"的大小关系——我们首先会对它们的第一个字符进行比较,如果第一个字符相同,则会接下来比较第二个字符;如果第二个字符相同, 则会接下来比较第三个字符;当我们发现"ab"没有第三个字符时,我们就得到了"ab" < "abc"的结论。

通过例子,我们可以总结:

字典序遵循的是逐字符比较的方式,越靠左的字符越会被先比较。

逐字符比较过程中,一旦发现某一对被比较的字符之间不相等时,这一对字符的大小关系即为这一对字符串的大小关系。

逐字符比较过程中,一旦出现某一个字符串的所有字符都已经经过比较,而另一字符串还存在未被比较的字符时,较短的字符串更小。

如果所有字符串内的字符都被发现相等,则这两个字符串相等。

因此,我们也可以回答前面的问题啦!字符串"China"是大于"America"的。

老师希望通过程序比较两个字符串的大小,小可爱们,你们可以帮助他吗?

在处理字符串的标准库中,有一个函数strcmp(表示 string compare)用于比较字符串。

c++
#include <stdio.h>
@@[#include<string.h>](2)
int main() {
char string[100] = "hello";
char input1[100] = "He";
char input2[100] = "hello";
char input3[100] = "zoo";
if(strcmp(input1,string)@@[<](1)0)
{
printf("\"%s\" is less than \"%s\"\n",input1,string);
}
if(strcmp(input2,string)@@[==](1)0)
{
printf("\"%s\" equals \"%s\"\n",input2,string);
}
if(strcmp(input3,string)@@[>](1)0)
{
printf("\"zoo\" is greater than \"hello\"\n");
}
return 0;
}

要求输出结果为:

![1.png](~/dcea26ce-c8e7-4218-805b-2a1ef4b61e99.png)






答案:
第1空:#include<string.h>

第2空:<

第3空:==

第4空:>

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。