写一个函数,实现两个字符串比较,即自己写一个sstrcmp函数,函数原原型为:int sstrcmp(char *p1,char *p2)。设p1指向字符串s1,p2指向字符串s2。
时间: 2024-02-13 14:02:00 浏览: 68
数据结构-c语言-带main函数-串4-串比较-根据标准库函数strcmp()和定义求串比较函数的两种方法。
以下是一个实现两个字符串比较的 `sstrcmp` 函数的示例:
```c
#include <stdio.h>
// 函数原型:比较两个字符串
int sstrcmp(char *p1, char *p2);
int main() {
char str1[100], str2[100]; // 定义两个字符数组
int result; // 比较结果
printf("请输入第一个字符串:");
scanf("%s", str1); // 读入第一个字符串
printf("请输入第二个字符串:");
scanf("%s", str2); // 读入第二个字符串
result = sstrcmp(str1, str2); // 调用比较函数
if (result == 0) {
printf("两个字符串相等\n");
} else if (result < 0) {
printf("第一个字符串小于第二个字符串\n");
} else {
printf("第一个字符串大于第二个字符串\n");
}
return 0;
}
// 函数定义:比较两个字符串
int sstrcmp(char *p1, char *p2) {
while (*p1 && *p2 && (*p1 == *p2)) {
p1++;
p2++;
}
return *p1 - *p2;
}
```
程序中定义了两个字符数组 `str1` 和 `str2`,用于存储输入的两个字符串,以及一个整数变量 `result`,用于存储比较结果。
在主函数中,使用 `scanf` 函数读入两个字符串,并调用 `sstrcmp` 函数来比较它们。如果返回值为 0,则表示两个字符串相等;如果返回值为负数,则表示第一个字符串小于第二个字符串;如果返回值为正数,则表示第一个字符串大于第二个字符串。
`sstrcmp` 函数使用指针的方式来遍历两个字符串,并在每次循环中将两个指针分别向后移动一个位置,直到两个指针指向的字符不相等或者其中一个字符串的结尾。在循环中,使用 `*p1 - *p2` 来计算两个指针指向的字符的差值,根据差值的正负性来判断两个字符串的大小关系。
输出结果类似于:
```
请输入第一个字符串:hello
请输入第二个字符串:world
第一个字符串小于第二个字符串
```
阅读全文