写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char *pl,char *p2);
时间: 2023-04-07 21:00:30 浏览: 159
好的,这个问题我可以回答。下面是一个简单的strcmp函数的实现:
```c
int strcmp(char *p1, char *p2) {
while (*p1 && *p2 && (*p1 == *p2)) {
p1++;
p2++;
}
return (*p1 - *p2);
}
```
这个函数会比较两个字符串,如果它们相等,返回0;如果第一个字符串比第二个字符串小,返回一个负数;如果第一个字符串比第二个字符串大,返回一个正数。
相关问题
丽数原型为+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。
#include<iostream> using namespace std; int main() {int strcmp(char *pl,char *p2); int m; char str1[20],str2[20],*p1,*p2; cout<<"input two strings: "<<endl; cin>>str1; cin>>str2; p1=&str1[0]; p2=&str2[0]; m=strcmp(p1,p2); cout<<"result: "<<m<<endl; return 0; } int strcmp(char *p1,char *p2) {int i; i=0; while(*(p1+i)==*(p2+i)) if(*(p1+i++)==0)return(0); return(*(p1+i)-(*(p2+i))); }
这是一个比较两个字符串大小的程序,可以通过调用strcmp函数实现。具体做法是定义两个指针p1和p2,分别指向两个字符串的第一个字符,然后逐一比较它们的对应字符。如果两个字符相等,则继续比较下一个字符,直到出现不相等的情况。如果字符串已经比较完,且两个字符串的长度相同,则返回0表示两个字符串相等。否则,返回它们第一个不相等字符的差值。
在程序中,使用了指针的方式来访问字符串中的每个字符,可以方便地实现字符串的比较操作。需要注意的是,在比较两个字符串大小时,必须考虑它们的长度,否则可能会导致程序出错。
阅读全文
相关推荐










