可以在主函数中输入两个字符串,调用fun函数完成串比较,在主函数中输出这两个字符串的比较结果。
参考如下:
#include <stdio.h>
int fun(char *str1, char *str2) {
while (*str1 != '\0' && *str2 != '\0' && *str1 == *str2)
{
str1++;
str2++;
}
if (*str1 != '\0' && *str2 == '\0')
return 1;
else if (*str1 == '\0' && *str2 != '\0')
return -1;
else if (*str1 > *str2)
return 1;
else if (*str1 < *str2)
return -1;
else
return 0;
}
int main()
{
char str1[100];
char str2[100];
gets(str1);
gets(str2);
printf("result = %d", fun(str1, str2));
return 0;
}
解决方案:
可以先定义一个fun函数,该函数接受两个指向字符数组的指针参数,比较两个字符串是否相等。使用指针可以减小传参的开销。函数返回值为int类型,表示比较结果,相等返回0,不相等返回1。主函数中可以先定义两个字符串,然后调用fun函数进行比较,并输出结果。
代码如下:
#include <stdio.h>
#define MAX_LEN 100
int fun(char *s1, char *s2) {
while (*s1 != '\0' && *s1 == *s2) {
s1++;
s2++;
}
return (*s1 == *s2);
}
int main() {
char str1[MAX_LEN], str2[MAX_LEN];
printf("请输入第一个字符串:");
fgets(str1, MAX_LEN, stdin);
printf("请输入第二个字符串:");
fgets(str2, MAX_LEN, stdin);
if (fun(str1, str2) == 0) {
printf("两个字符串相等\n");
} else {
printf("两个字符串不相等\n");
}
return 0;
}
在上面的代码中,fun函数使用了指针进行字符串比较,主函数中先使用fgets函数读取输入字符串,然后调用fun函数进行比较,并输出结果。注意,在使用fgets函数读取字符串时,可以防止缓冲区溢出的问题。