编写一个函数comp(s1,s2)实现两个字符串的比较。 如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1<s2则输出负值。 两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。
时间: 2024-03-14 13:43:49 浏览: 83
用一个函数实现两个字符串的比较,即自己写一个 strcmp 函数
以下是该函数的Python实现:
```python
def comp(s1, s2):
i = 0
while i < len(s1) and i < len(s2):
if s1[i] != s2[i]:
return ord(s1[i]) - ord(s2[i])
i += 1
if len(s1) == len(s2):
return 0
elif len(s1) > len(s2):
return ord(s1[i])
else:
return -ord(s2[i])
```
该函数的实现思路如下:
- 从字符串的第一个字符开始逐个比较两个字符串的字符,如果找到不同字符,则返回它们的ASCII码差值。
- 如果两个字符串的长度相同,则说明它们的前缀都相同,直接返回0。
- 如果s1的长度大于s2的长度,则说明s1的后缀比s2的长,返回s1后缀的第一个字符的ASCII码。
- 如果s2的长度大于s1的长度,则说明s2的后缀比s1的长,返回-s2后缀的第一个字符的ASCII码。
注意,该函数的实现是基于ASCII码的,如果涉及到Unicode字符集的比较,需要使用其他方法。
阅读全文