在主函数中调用gets 函数输入2个字符串,调用函数myStrcmp比较,输出该函数的返回值实现字符串比较的功能
时间: 2023-11-28 21:47:54 浏览: 44
好的,以下是代码实现:
```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语言代码:
```c
#include <stdio.h>
int myStrcmp(char* str1, char* str2);
int main() {
char str1[100], str2[100];
printf("请输入字符串1:");
gets(str1);
printf("请输入字符串2:");
gets(str2);
int result = myStrcmp(str1, str2);
printf("字符串比较的结果为:%d\n", result);
return 0;
}
int myStrcmp(char* str1, char* str2) {
int i = 0;
while (str1[i] != '\0' || str2[i] != '\0') {
if (str1[i] != str2[i]) {
return str1[i] - str2[i];
}
i++;
}
return 0;
}
```
首先,在主函数中定义了两个字符串数组 `str1` 和 `str2`,并使用 `gets` 函数分别读取用户输入的两个字符串。
接着,调用函数 `myStrcmp` 对两个字符串进行比较,并将比较的结果保存在变量 `result` 中。
最后,将比较的结果输出到屏幕上。在函数 `myStrcmp` 中,首先使用 while 循环对两个字符串逐个字符进行比较,如果发现有字符不相同,则返回其 ASCII 码的差值;如果所有字符都相同,则返回 0。
需要注意的是,在实际应用中,使用 `gets` 函数可能存在安全隐患,因为它无法保证输入的字符串长度不超过数组的大小。在实际开发中,建议使用更加安全的输入函数 `fgets`。
编写函数myStrcmp,实现字符串比较的功能
下面是一个简单的实现:
```c
int myStrcmp(char *str1, char *str2) {
int i = 0;
while (str1[i] != '\0' || str2[i] != '\0') {
if (str1[i] != str2[i]) {
return (str1[i] < str2[i]) ? -1 : 1;
}
i++;
}
return 0;
}
```
这个函数会逐个比较两个字符串的字符,直到遇到不同的字符或者其中一个字符串结束。如果遇到不同的字符,就返回它们的 ASCII 码的差值,如果 str1[i] 小于 str2[i],就返回 -1,否则返回 1。如果两个字符串一直都相等,就返回 0。