:用一个函数实现两个字符串的比较,即自己写一个strcmp函数
时间: 2023-06-05 20:47:47 浏览: 185
可以使用以下代码实现一个简单的strcmp函数:
```python
def my_strcmp(str1, str2):
i =
while i < len(str1) and i < len(str2):
if str1[i] < str2[i]:
return -1
elif str1[i] > str2[i]:
return 1
i += 1
if len(str1) < len(str2):
return -1
elif len(str1) > len(str2):
return 1
else:
return
```
该函数接受两个字符串作为参数,返回值为整数,表示两个字符串的大小关系。如果第一个字符串小于第二个字符串,返回-1;如果第一个字符串大于第二个字符串,返回1;如果两个字符串相等,返回。
相关问题
题目描述:用一个函数实现两个字符串的比较,即自己写一个strcmp函数
### 回答1:
可以使用循环来遍历两个字符串,比较对应位置上的字符。如果不同,则返回两个字符的差值(第一个字符的ASCLL码减第二个字符的ASCLL码)。如果相同,则继续比较下一个字符。如果遍历完所有字符后仍相同,则返回0.
具体实现如下:
```
int my_strcmp(const char *s1, const char *s2)
{
while (*s1 != '\0' && *s2 != '\0')
{
if (*s1 != *s2)
{
return *s1 - *s2;
}
s1++;
s2++;
}
if (*s1 != '\0')
{
return 1;
}
if (*s2 != '\0')
{
return -1;
}
return 0;
}
```
这是一个简单的strcmp函数的实现,如果有更复杂的需求可以进行修改。
### 回答2:
strcmp函数是C语言中的一个标准库函数,可以用来比较两个字符串的大小。如果两个字符串相等,则返回0;如果第一个字符串大于第二个字符串,则返回大于0的值;如果第一个字符串小于第二个字符串,则返回小于0的值。
那么如何自己写一个strcmp函数呢?首先,我们可以定义一个函数,取名为my_strcmp,这个函数需要传入两个参数,分别是要比较的两个字符串。函数的返回值为int类型,表示两个字符串的大小关系。
下面是一个简单的实现:
```
int my_strcmp(char* s1, char* s2) {
while (*s1 != '\0' || *s2 != '\0') { // 当两个字符串都没有比较到结尾时
if (*s1 == *s2) { // 如果两个字符相等
s1++; // 指针向后移动
s2++;
} else { // 如果两个字符不相等
return (*s1 - *s2); // 直接返回它们的差值
}
}
return 0; // 如果比较到结尾,说明两个字符串相等,返回0
}
```
这个函数的思路很简单:用while循环逐个比较两个字符串中的字符,如果不相等就返回它们的差值,如果比较到结尾还没有返回,说明两个字符串相等,返回0即可。
上面的实现还比较简单,有些情况下可能不够严谨。比如,如果两个字符串中有其中一个字符串比另一个字符串短,那么可能会发生越界的问题,可以考虑添加一些针对边界条件的处理,增加函数的鲁棒性。
实现一个strcmp函数,对于理解字符串比较的过程非常有帮助,也可以通过这个例子学会如何自己写一个标准库函数。
### 回答3:
strcmp函数是一种比较字符串的函数,可以将两个字符串进行比较,如果相等则返回0,如果不相等则返回非0值。该函数可以在常用的程序设计语言中使用。现在需要我们自己编写一个strcmp函数。
在编写这个函数之前,我们需要了解一些相关的知识。字符串是由一组字符组成的序列,通常以空字符('\0')作为结束符。我们需要将两个字符串逐个字符进行比较,比较的过程需要注意以下几点:
1. 如果两个字符串的长度不同,则它们肯定不相等。
2. 如果两个字符串的前n个字符相等,则比较下一个字符,直到某一字符不相等或者所有字符都相等。
3. 如果两个字符串中有一个字符串已经比较完,则比较结果取决于另一个字符串有没有更多的字符。
基于以上的考虑,我们可以在代码中实现以下的函数:
int strcmp(char *str1, char *str2)
{
int n = 0;
while (str1[n] != '\0' && str2[n] != '\0')
{
if (str1[n] != str2[n])
{
return (str1[n] - str2[n]);
}
n++;
}
if (str1[n] == '\0' && str2[n] == '\0')
{
return 0;
}
else if (str1[n] == '\0')
{
return -1;
}
else
{
return 1;
}
}
在这个函数中,我们使用了一个while循环,每次将两个字符串中的一个字符进行比较。如果不相等,则返回它们之间的差值。如果两个字符串比较完全相等,则返回0。如果一个字符串比较完了但是另一个字符串还有字符,则返回非0值。
这个自定义的strcmp函数可以用于在C语言程序中比较字符串。在使用时,只需要将两个需要比较的字符串作为参数传入函数即可。函数的返回值可以用于判断两个字符串是否相等,以及它们之间的大小关系。
编写一个程序,用一个函数实现两个字符串的比较,即自己写一个strcmp函数 输入:输入两字符串 输出:输出最大的那个字符串 例如: 输入: abc abd 输出: abd
好的,我可以帮你写一个自定义的strcmp函数,实现比较两个字符串的功能。
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入字符串1:");
String str1 = sc.next();
System.out.print("请输入字符串2:");
String str2 = sc.next();
String max_str = my_strcmp(str1, str2);
System.out.println("最大的字符串是:" + max_str);
}
public static String my_strcmp(String str1, String str2) {
if (str1.equals(str2)) {
return str1;
}
for (int i = 0; i < Math.min(str1.length(), str2.length()); i++) {
if (str1.charAt(i) > str2.charAt(i)) {
return str1;
} else if (str1.charAt(i) < str2.charAt(i)) {
return str2;
}
}
return str1.length() > str2.length() ? str1 : str2;
}
}
```
以上是一个简单的自定义strcmp函数,实现了比较两个字符串的大小,并返回最大的那个字符串。你可以把这段代码复制到你的Java编辑器中,然后调用该函数进行测试,例如:
输入示例:
```
请输入字符串1:abc
请输入字符串2:abd
```
输出示例:
```
最大的字符串是:abd
```
阅读全文