写一个strcmp函数,函数的原型为:int strcmp(char *p1, char *p2)。设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;若s1≠s2,返回它们二者第一个不同字符的ASCII码差值。如果s1>s2,则输出正值;如果s1<s2,则输出负值。请注意行尾输出换行。请使用cpp语言进行编程。
时间: 2023-05-31 15:08:00 浏览: 46
好的,我会根据你的要求来回答问题。以下是strcmp函数的cpp实现:
```
#include <iostream>
using namespace std;
int strcmp(char* p1, char* p2) {
int i = 0;
while (p1[i] != '\0' || p2[i] != '\0') {
if (p1[i] != p2[i]) {
return p1[i] - p2[i];
}
i++;
}
return 0;
}
int main() {
char str1[100], str2[100];
cin >> str1 >> str2;
int result = strcmp(str1, str2);
cout << result << endl;
return 0;
}
```
如果s1=s2,输出0;若s1≠s2,返回它们二者第一个不同字符的ASCII码差值;如果s1>s2,则输出正值;如果s1<s2,则输出负值。
相关问题
编写一个函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 strcmp(char *p1,char *p2) 设p1指向字符串s1,p2指向字符串s2.要求当s1=s2时,返回值为
,当s1>s2时,返回值为正数,当s1<s2时,返回值为负数。
函数实现如下:
int strcmp(char *p1, char *p2) {
while (*p1 == *p2 && *p1 != '\') {
p1++;
p2++;
}
return *p1 - *p2;
}
函数的实现原理是逐个比较两个字符串中的字符,如果相同则继续比较下一个字符,直到遇到不同的字符或者字符串结束符'\'。如果遇到不同的字符,则返回它们的ASCII码差值,如果两个字符串完全相同,则返回。
编写一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为“int strcmp(char* p1,char* p2);”设p1指向字符串s1,p2指向字符串s2,要求当s1==s2时,函数返回值为0;若s1≠s2,则返回二者中第一个不相同字符的ASCII码差值
以下是实现strcmp函数的代码:
```c++
int strcmp(char* p1, char* p2) {
while (*p1 == *p2) {
if (*p1 == '\0') {
return 0;
}
p1++;
p2++;
}
return *p1 - *p2;
}
```
该函数的实现思路是通过循环比较两个字符串中对应位置的字符是否相等,如果相等则继续比较下一个位置,直到遇到不相等的位置或者遇到其中一个字符串的结尾。如果两个字符串完全相等,则返回0;否则返回第一个不相等字符的ASCII码差值。