在主函数中调用gets 函数输入2个字符串,调用函数myStrcmp比较,输出该函数的返回值实现字符串比较的功能
时间: 2023-11-28 22:47:54 浏览: 68
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int myStrcmp(char *str1, char *str2) {
int len1 = strlen(str1), len2 = strlen(str2);
int minLen = len1 < len2 ? len1 : len2;
for (int i = 0; i < minLen; i++) {
if (str1[i] != str2[i]) {
return str1[i] - str2[i];
}
}
return len1 - len2;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:");
gets(str1);
printf("请输入第二个字符串:");
gets(str2);
int result = myStrcmp(str1, str2);
printf("比较结果为:%d\n", result);
return 0;
}
```
上述代码中,使用了 gets 函数获取用户输入的两个字符串,然后调用 myStrcmp 函数进行字符串比较,最后输出比较结果。其中,myStrcmp 函数实现了字符串比较的功能,比较过程中使用了字符串长度和字符比较的方法。
相关问题
C语言在主函数中调用gets 函数输入2个字符串,调用函数myStrcmp比较,输出该函数的返回值实现字符串比较的功能
可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
int myStrcmp(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int len = len1 < len2 ? len1 : len2; // 取两个字符串长度中较小的一个
for (int i = 0; i < len; i++) {
if (str1[i] < str2[i]) {
return -1;
} else if (str1[i] > str2[i]) {
return 1;
}
}
if (len1 < len2) {
return -1;
} else if (len1 > len2) {
return 1;
} else {
return 0;
}
}
int main() {
char str1[100], str2[100];
printf("请输入两个字符串:\n");
gets(str1);
gets(str2);
int result = myStrcmp(str1, str2);
if (result < 0) {
printf("%s 小于 %s\n", str1, str2);
} else if (result > 0) {
printf("%s 大于 %s\n", str1, str2);
} else {
printf("%s 等于 %s\n", str1, str2);
}
return 0;
}
```
在这个程序中,我们首先定义了一个 `myStrcmp` 函数,用于比较两个字符串。该函数的实现方式与标准库函数 `strcmp` 类似,通过逐个比较字符的 ASCII 码值来判断两个字符串的大小关系。如果字符串相等,则返回 0;如果字符串不等,则返回 -1 或 1,表示哪个字符串更小或更大。
在 `main` 函数中,我们首先定义了两个字符数组 `str1` 和 `str2`,用于存储用户输入的两个字符串。然后使用 `gets` 函数分别输入这两个字符串。注意,`gets` 函数已经被标记为不安全,建议使用更安全的函数 `fgets`。
接下来,我们调用 `myStrcmp` 函数比较这两个字符串,并根据比较结果输出相应的提示信息。最后返回 0 表示程序正常结束。
编写函数myStrcmp,实现字符串比较的功能。(10分) 题目内容: 以下为myStrcmp的函数原型,功能为比较str1和str2两个字符串的大小。返回结果如下: ① str1小于str2,返回-1; ② str1等于str2,返回0; ③ str1大于str2,返回1。 在主函数中调用gets函数输入2个字符串,调用该函数比较,输出该函数的返回值。 int myStrcmp( char *str1, char *str2); 输入格式: 两个字符串(不多于20个字符),每个字符串以回车结束。 输出格式: 一个整数,1,0,或者-1。如果大于则输出1,相等则输出0,小于则输出-1. 输入样例: abcd abcde
好的,以下是myStrcmp函数的实现代码:
```c
#include <stdio.h>
int myStrcmp(char *str1, char *str2) {
int i = 0;
while (str1[i] != '\0' && str2[i] != '\0') {
if (str1[i] < str2[i]) {
return -1;
} else if (str1[i] > str2[i]) {
return 1;
}
i++;
}
if (str1[i] == '\0' && str2[i] == '\0') {
return 0;
} else if (str1[i] == '\0') {
return -1;
} else {
return 1;
}
}
int main() {
char str1[21], str2[21];
gets(str1);
gets(str2);
int result = myStrcmp(str1, str2);
printf("%d", result);
return 0;
}
```
输入样例:
```
abcd
abcde
```
输出样例:
```
-1
```
阅读全文