strcmp函数的实现C++
时间: 2023-10-22 19:06:33 浏览: 81
在C++中,可以使用标准库函数`strcmp()`来比较两个字符串。下面是`strcmp()`函数的一种实现方式:
```c++
#include <iostream>
int strcmp(const char* s1, const char* s2) {
while (*s1 && (*s1 == *s2)) {
s1++;
s2++;
}
return *(const unsigned char*)s1 - *(const unsigned char*)s2;
}
int main() {
char str1[] = "hello";
char str2[] = "world";
char str3[] = "hello";
std::cout << strcmp(str1, str2) << std::endl; // 输出负数
std::cout << strcmp(str1, str3) << std::endl; // 输出0
std::cout << strcmp(str2, str1) << std::endl; // 输出正数
return 0;
}
```
这个实现中,`strcmp()`函数接受两个`const char*`类型的指针参数,分别指向两个要比较的字符串。函数使用循环来遍历字符串,同时比较两个字符串的每个字符是否相同。如果两个字符不同,函数返回它们的差值,如果两个字符串相等,则函数返回0。需要注意的是,在比较字符时,使用了`unsigned char`类型,这是为了避免出现符号扩展的问题。
阅读全文