c++中字符串cmp函数
时间: 2024-04-19 16:18:56 浏览: 198
C++中的字符串比较函数是strcmp,它可以比较两个字符串的大小。该函数的原型如下:
```c++
int strcmp(const char* str1, const char* str2);
```
其中,str1和str2是要比较的两个字符串,函数返回值为0表示两个字符串相等,返回值大于0表示str1大于str2,返回值小于0表示str1小于str2。
例如,以下代码比较了两个字符串s1和s2的大小:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char s1[] = "hello";
char s2[] = "world";
int result = strcmp(s1, s2);
if (result == 0)
cout << "s1 equals s2" << endl;
else if (result > 0)
cout << "s1 is greater than s2" << endl;
else
cout << "s1 is less than s2" << endl; return 0;
}
```
输出结果为:
```
s1 is less than s2
```
相关问题
c++定义任意两个字符串,完成以下操作: (1)编写求字符串长度函数,显示该字符串长度; (2)编写字符串拼接函数,将该字符串与键盘输入的另一字符串拼接,并显示拼接结果; (3)编写比较大小函数,比较两字符串
以下是定义任意两个字符串的 C 代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
// 求字符串长度函数
int str_len(char *str) {
int len = 0;
while (*str++) {
len++;
}
return len;
}
// 字符串拼接函数
void str_cat(char *str1, char *str2) {
strcat(str1, str2);
}
// 比较大小函数
int str_cmp(char *str1, char *str2) {
return strcmp(str1, str2);
}
int main() {
char str1[MAX_LEN], str2[MAX_LEN];
printf("请输入第一个字符串:");
gets(str1);
printf("请输入第二个字符串:");
gets(str2);
printf("第一个字符串长度为:%d\n", str_len(str1));
printf("第二个字符串长度为:%d\n", str_len(str2));
str_cat(str1, str2);
printf("拼接后的字符串为:%s\n", str1);
int cmp_res = str_cmp(str1, str2);
if (cmp_res < 0) {
printf("第一个字符串小于第二个字符串\n");
} else if (cmp_res > 0) {
printf("第一个字符串大于第二个字符串\n");
} else {
printf("两个字符串相等\n");
}
return 0;
}
```
注意,在这个代码中,我们使用了 C 语言内置的 `strlen()` 函数来求字符串长度,使用了 `strcat()` 函数来进行字符串拼接,使用了 `strcmp()` 函数来进行字符串比较。同时,我们还自己手动实现了一个求字符串长度的函数 `str_len()`,这个函数的实现方式是遍历字符串并计数。
c++如何编写一个cmp函数让 BabA变为 aABb
可以按照以下步骤编写cmp函数:
1. 定义一个cmp函数,接受两个参数,表示要比较的两个字符。
2. 首先将两个字符都转换为小写字母,这样比较时不会受到大小写的影响。
3. 如果两个字符相等,则返回0。
4. 如果第一个字符是大写字母,而第二个字符不是,则返回-1,表示第一个字符应该排在第二个字符前面。
5. 如果第一个字符是小写字母,而第二个字符是大写字母,则返回1,表示第一个字符应该排在第二个字符后面。
6. 如果两个字符都是小写字母,则按照字典序比较它们的大小,如果第一个字符比第二个字符小,则返回-1,否则返回1。
下面是一个示例实现:
```python
def cmp(a, b):
a = a.lower()
b = b.lower()
if a == b:
return 0
if a.isupper() and b.islower():
return -1
if a.islower() and b.isupper():
return 1
return -1 if a < b else 1
```
使用该函数对字符串进行排序,可以将"BabA"排序为"aABb":
```python
s = "BabA"
s = ''.join(sorted(s, key=cmp_to_key(cmp)))
print(s) # 输出:aABb
```
阅读全文