字符串比较函数mystrcmp
时间: 2024-04-04 14:26:28 浏览: 135
my_strcmp()函数是一个自定义的字符串比较函数,用于比较两个字符串的大小。它的实现方式可以根据具体需求进行编写。下面是一个示例实现:
```c
int my_strcmp(const char *str1, const char *str2) {
while (*str1 && (*str1 == *str2)) {
str1++;
str2++;
}
return *(unsigned char*)str1 - *(unsigned char*)str2;
}
```
这个函数会逐个比较两个字符串中的字符,直到遇到不相等的字符或者其中一个字符串结束。如果第一个字符串大于第二个字符串,则返回一个大于0的数;如果两个字符串相等,则返回0;如果第一个字符串小于第二个字符串,则返回一个小于0的数。
相关问题
请自己编写一个字符串比较函数MyStrcmp(),输入一个密码,调用函数MyStrcmp()判断用户输入的密码是否正确,如果正确,则输出"Welcome!\n",如果不正确,则输出"Sorry!\n",直到用户输入正确为止。
好的,我可以为您编写一个自定义的字符串比较函数MyStrcmp(),并实现一个简单的密码验证程序。以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
// 自定义字符串比较函数
int MyStrcmp(const char *str1, const char *str2) {
while (*str1 && *str2) {
if (*str1 != *str2) {
return *str1 - *str2;
}
str1++;
str2++;
}
return *str1 - *str2;
}
int main() {
char password[] = "CSDN123"; // 预设密码
char input[100];
printf("请输入密码: ");
while (1) {
scanf("%s", input);
if (MyStrcmp(input, password) == 0) {
printf("Welcome!\n");
break;
} else {
printf("Sorry!\n请重新输入密码: ");
}
}
return 0;
}
```
这段代码的工作原理如下:
1. 我们定义了一个名为MyStrcmp的自定义字符串比较函数。它逐字符比较两个字符串,直到找到不同的字符或到达字符串末尾。
2. 在main函数中,我们设置了一个预设的密码"CSDN123"。
3. 程序进入一个无限循环,不断提示用户输入密码。
4. 每次用户输入后,我们调用MyStrcmp函数比较输入的密码和预设密码。
5. 如果MyStrcmp返回0,表示两个字符串相等,程序输出"Welcome!"并退出循环。
6. 如果MyStrcmp返回非0值,表示密码不正确,程序输出"Sorry!"并要求用户重新输入。
这个程序会一直运行,直到用户输入正确的密码为止。
在主函数中调用gets 函数输入2个字符串,调用函数myStrcmp比较,输出该函数的返回值实现字符串比较的功能
好的,以下是代码实现:
```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 函数实现了字符串比较的功能,比较过程中使用了字符串长度和字符比较的方法。
阅读全文
相关推荐














