采用指针法编写函数mystrcmp(char*t,char+*s),实现伍strcmp的等价功能
时间: 2024-06-01 16:04:11 浏览: 152
根据提供的引用内容,可以了解到strcmp函数是用于比较两个字符串的函数,如果两个字符串相等,则返回0,如果第一个字符串小于第二个字符串,则返回负数,如果第一个字符串大于第二个字符串,则返回正数。下面是使用指针法编写的mystrcmp函数的代码实现:
```c
int mystrcmp(char* t, char* s) {
while (*t && *s && (*t == *s)) {
t++;
s++;
}
return *t - *s;
}
```
在这个函数中,我们使用while循环来比较两个字符串,如果两个字符串的当前字符相等,则继续比较下一个字符,直到遇到不相等的字符或者其中一个字符串结束。最后,我们返回两个字符串第一个不相等字符的ASCII码差值。
相关问题
丽数原型为+int+Mystrcmp+(char+*pl+char+*p2):设+P1指向字符串+S1
根据提供的引用内容,可以看出这是一道关于自己实现strcmp函数的题目。下面是一个简单的实现方法:
```c
int Mystrcmp(char* p1, char* p2) {
int ret;
while (*p1 && *p2) {
if (*p1 != *p2) {
ret = *p1 - *p2;
break;
}
p1++;
p2++;
}
if (*p1 == '\0' || *p2 == '\0')
ret = *p1 - *p2;
return ret;
}
```
该函数的原理是逐个比较两个字符串中的字符,如果发现不同的字符,则返回它们的ASCII码差值。如果两个字符串前半部分全部一样,那么从末尾进行判断。如果两个字符串完全相同,则返回0。
利用指针编程实现函数mystrcmp,实现与库函数strcmp等价的功能
下面是一个利用指针编写的mystrcmp函数的示例代码,其实现与库函数strcmp等价:
```c
int mystrcmp(const char* s1, const char* s2) {
while (*s1 && (*s1 == *s2)) {
s1++;
s2++;
}
return *(const unsigned char*)s1 - *(const unsigned char*)s2;
}
```
该函数接受两个参数,即要比较的两个字符串s1和s2,返回值为整型。函数使用while循环遍历两个字符串,比较它们的每个字符,如果字符相同,指针就向后移动,继续比较下一个字符;如果字符不同,函数就返回它们的ASCII码差值。由于该函数使用了指针,可以避免在函数内部复制字符串,提高了效率。
阅读全文