c++ strcmp函数
时间: 2024-12-23 07:11:39 浏览: 9
C++ `strcmp` 函数用于比较两个C风格字符串(即以空字符'\0'结尾的字符数组)的内容。该函数原型如下[^1]:
```cpp
int strcmp(const char *dest, const char *source);
```
它返回一个整数值:
- 如果`*dest`小于`*source`,则返回一个负数。
- 如果`*dest`等于`*source`,则返回零。
- 如果`*dest`大于`*source`,则返回正数。
示例演示如何使用`strcmp`[^2]:
```cpp
#include <cstring> // 包含strcmp函数
const char* str1 = "Hello";
const char* str2 = "World";
// 比较str1和str2
int result = strcmp(str1, str2);
if (result < 0) {
std::cout << "str1 is less than str2" << std::endl;
} else if (result == 0) {
std::cout << "str1 and str2 are equal" << std::endl;
} else {
std::cout << "str1 is greater than str2" << std::endl;
}
```
在这个例子中,`strcmp(str1, str2)`会返回一个负数,因为"Hello"在字母表上排在"World"前面。
相关问题
strcmp函数c++
strcmp函数是C语言中的一个字符串比较函数。它用于比较两个字符串的大小关系。该函数的返回值为整数,具体取值如下:
- 如果str1小于str2,则返回一个负整数。
- 如果str1等于str2,则返回0。
- 如果str1大于str2,则返回一个正整数。
在引用和引用的例子中,我们可以看到如何使用strcmp函数进行字符串比较。这两个例子分别比较了两对字符串,然后打印了strcmp函数的返回值。
编写C++函数,实现strcmp函数功能
在C++中,你可以创建一个名为`my_strcmp`的自定义函数,效仿标准库中的`std::strcmp`函数的功能,比较两个字符串是否相等。`std::strcmp`通常用于C语言,但在C++中也可以作为参考实现。这里是一个简单的例子:
```cpp
#include <string>
#include <cctype> // 包含tolower函数用于忽略大小写
int my_strcmp(const std::string& str1, const std::string& str2) {
int lengthDiff = str1.length() - str2.length();
// 如果长度不同,则直接返回差值
if (lengthDiff != 0)
return lengthDiff;
// 遍历字符串,逐字符对比,忽略大小写
for (size_t i = 0; i < str1.length(); ++i) {
if (tolower(str1[i]) != tolower(str2[i])) { // 使用tolower转换并比较字符
return str1[i] < str2[i] ? -1 : 1; // 返回字符顺序差异
}
}
// 字符串完全相等
return 0;
}
```
这个函数首先检查两个字符串的长度,如果长度不同则直接返回长度之差。然后逐个字符对比,如果找到不匹配的字符,按ASCII码排序返回负数(str1小于str2)、正数(str1大于str2)或零(两者相等)。
阅读全文