这是一个定义函数的问题,函数名为strcmp,参数为两个字符指针str1和str2。该函数的作用是比较两个字符串str1和str2的大小关系。如果str1小于str2,则返回负数-1;如果str1等于str2,则返回0;如果str1大于str2,则返回正数1。
时间: 2024-05-19 13:15:57 浏览: 38
以下是一个可能的strcmp函数的定义:
int strcmp(const char *str1, const char *str2) {
while (*str1 && *str2 && (*str1 == *str2)) {
str1++;
str2++;
}
if (*str1 == '\0' && *str2 == '\0') {
return 0; // 字符串相等
} else if (*str1 == '\0') {
return -1; // str1比str2短
} else if (*str2 == '\0') {
return 1; // str1比str2长
} else {
return (*str1 < *str2) ? -1 : 1; // 比较str1和str2当前位置的字符
}
}
该函数使用指针遍历两个字符串,并比较每个位置上的字符,直到遇到不同的字符或者字符串的结尾。如果两个字符串的长度相等且每个位置上的字符都相等,则返回0表示它们相等。如果str1比str2短,则返回-1;如果str1比str2长,则返回1。如果遇到不同的字符,则根据它们的ASCII码值大小关系返回-1或1。
相关问题
定义函数int strcmp(char * str1,char * str2),比较两个字符串str1,str2。若 str1<str2,返回负数-1;str1=str2,返回 0;str1>str2,返回正数1。
这是一个定义函数的问题,函数名为strcmp,参数为两个字符指针str1和str2。该函数的作用是比较两个字符串str1和str2的大小关系。如果str1小于str2,则返回负数-1;如果str1等于str2,则返回0;如果str1大于str2,则返回正数1。
c语言编写函数实现两个字符串的比较,即自己写一个strcmp函数。函数原型为int strcmp(char *p1,char *p2);两个字符串相等时返回0,不相等返回两个字符串第一个不相等字符ASCII码之差。(指针实现)完整程序
下面是一个示例程序,实现了自定义的 `strcmp` 函数:
```c
#include <stdio.h>
int strcmp(char *p1, char *p2);
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = strcmp(str1, str2);
if (result == 0) {
printf("The two strings are equal.\n");
} else {
printf("The two strings are different. The ASCII difference is %d.\n", result);
}
return 0;
}
int strcmp(char *p1, char *p2) {
while (*p1 == *p2 && *p1 != '\0') {
p1++;
p2++;
}
return (*p1) - (*p2);
}
```
该函数的实现方法是:首先使用一个 while 循环,逐个比较两个字符串的字符是否相等,直到出现不相等的字符或者字符串结束符 '\0'。然后返回两个字符串第一个不相等字符的 ASCII 码值之差。
阅读全文