题目:
一般我们用strcmp
可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 \text{ASCII}ASCII 码值大小比较),直到出现不同的字符或遇到'\0'
为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准(注意:如果某个字符串遇到'\0'
,而另一个字符串还未遇到'\0'
,则前者小于后者)。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"
和"hello"
在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入格式
输入为两行,每行一个字符串,共两个字符串。(每个字符串长度都小于 8080 且只包含大小写字母)
输出格式
如果第一个字符串比第二个字符串小,输出一个字符"<"
;
如果第一个字符串比第二个字符串大,输出一个字符">"
;
如果两个字符串相等,输出一个字符"="
。
样例输入
Hellohowareyou
helloHowareyou
样例输出
=
(题目来源于计蒜客https://nanti.jisuanke.com/t/T1114)
思路
输入字符串后全部将字符串中大写字母转为小写字母后再进行比较。题目需要判断字符串长度,仅仅在字符串长度相同且相同位置的字符相同才能输出“=”,字符串长度不同时比较短字符串最后一位字母和长字符串中相同位置字母的大小。
代码实现
a=input()
a=a.lower()#字符串全部转小写
a=list(a)
b=input()
b=b.lower()#字符串全部转小写
b=list(b)
if len(a)>len(b):
i=0
flag=0
while i<len(b) and flag==0:
if a[i]==b[i]:
i+=1
elif a[i]>b[i]:
print(">")
flag=1
else:
print("<")
flag=1
if flag==0:
print(">")
if len(a)<len(b):
i=0
flag=0
while i<len(a) and flag==0:
if a[i]==b[i]:
i+=1
elif a[i]>b[i]:
print(">")
flag=1
else:
print("<")
flag=1
if flag==0:
print("<")
if len(a)==len(b):
i=0
flag=0
while i<len(a) and flag == 0:
if a[i]==b[i]:
i+=1
elif a[i]>b[i]:
print(">")
flag=1
else:
print("<")
flag=1
if flag==0:
print("=")