C语言编写一个函数int strcmp(char* p1,char* p2),实现两个字符串的比较。当字符串1=字符串2时,返回0;当字符串1!=字符串2时,返回它们两者第一个不同字符的ASCII码的差值。
时间: 2024-05-09 16:21:02 浏览: 9
```c
int strcmp(char* p1, char* p2) {
while(*p1 && *p2 && *p1 == *p2) {
p1++;
p2++;
}
return *p1 - *p2;
}
```
解释:
该函数使用了指针遍历字符串的方法,比较两个字符串是否相等。首先判断两个指针所指向的字符是否相等,如果相等,则继续向后遍历,直到有一个指针所指向的字符不相等或者遍历到字符串末尾。最后返回两个指针所指向的字符ASCII码的差值。如果两个字符串相等,则差值为0。
相关问题
C语言编写一个函数int strcmp(char* p1,char* p2),实现两个字符串的比较。当字符串1=字符串2时,返回0;当字符串1!=字符串2时,返回它们两者第一个不同字符的ASCII码的差值。
```c
int strcmp(char* p1, char* p2) {
while (*p1 && *p2 && (*p1 == *p2)) {
p1++;
p2++;
}
return *p1 - *p2;
}
```
解释:
该函数使用指针遍历两个字符串,判断是否相同,如果不同则返回它们两者第一个不同字符的ASCII码的差值。如果两个字符串长度不同,且前面的字符都相同,那么当其中一个字符串到达结尾时,另一个字符串还有字符未遍历,此时会出现*p1或*p2为0的情况,因此while循环中首先判断*p1和*p2是否为0。如果两个字符相等,则指针向后移动,继续比较下一个字符。如果两个字符不相等,则返回它们两者第一个不同字符的ASCII码的差值(即*p1-*p2)。如果两个字符串完全相同,则while循环结束后,返回0。
c语言编程:使用指针,编写一个字符串比较的函数,函数声明为:int strcmp(char *p1,char *p2);
好的,以下是使用指针编写字符串比较函数的代码:
```c
int strcmp(char *p1, char *p2) {
while (*p1 != '\0' && *p2 != '\0') {
if (*p1 != *p2) {
return *p1 - *p2;
}
p1++;
p2++;
}
return *p1 - *p2;
}
```
这个函数接收两个指向字符串的指针,然后进行逐字符比较。如果两个指针指向的字符相同,则继续比较下一个字符,直到遇到某个指针指向的字符为 `\0`(即字符串结束符)为止。如果在比较的过程中发现两个指针指向的字符不相同,则返回它们的 ASCII 值之差。如果两个字符串完全相同,则返回 0。
希望对你有帮助!