用C++语言写一个strcmp函数
时间: 2023-05-29 13:03:52 浏览: 77
```
int strcmp(const char* str1, const char* str2) {
while (*str1 != '\0' && *str1 == *str2) {
str1++;
str2++;
}
return *str1 - *str2;
}
```
这个函数的作用是比较两个字符串是否相等,如果相等返回0,如果不相等返回非0值。
相关问题
strcmp函数c++
strcmp函数是C语言中的一个字符串比较函数。它用于比较两个字符串的大小关系。该函数的返回值为整数,具体取值如下:
- 如果str1小于str2,则返回一个负整数。
- 如果str1等于str2,则返回0。
- 如果str1大于str2,则返回一个正整数。
在引用和引用的例子中,我们可以看到如何使用strcmp函数进行字符串比较。这两个例子分别比较了两对字符串,然后打印了strcmp函数的返回值。
用c++写一个模拟strcmp函数的int型新函数,不要用指针,返回值:相等为0,不相等为第1个不相等字符的ascii码的差值
这里提供一种基于字符数组的实现方法:
```c++
int my_strcmp(const char str1[], const char str2[]) {
int i = 0;
while (str1[i] != '\0' && str2[i] != '\0') { // 遍历字符串
if (str1[i] != str2[i]) { // 如果字符不相等
return (int)str1[i] - (int)str2[i]; // 返回差值
}
i++;
}
if (str1[i] == '\0' && str2[i] == '\0') { // 如果两个字符串都遍历完了
return 0; // 返回0,表示相等
}
else { // 否则返回未遍历完的字符串的第一个字符的ascii码
return (int)str1[i] - (int)str2[i];
}
}
```
其中,`str1[]` 和 `str2[]` 分别表示两个待比较的字符串,`i` 表示当前比较到的字符的下标。函数首先遍历两个字符串,如果当前字符不相等,则返回它们的差值;如果两个字符串都遍历完了,则表示它们相等,返回0;否则返回未遍历完的字符串的第一个字符的ascii码的差值。
需要注意的是,该函数没有对输入的字符串长度进行检查,如果传入的字符串长度超过了数组的长度,可能会导致数组越界。