c++判断两个字符串有相同元素
时间: 2024-05-05 11:20:41 浏览: 147
可以一个布尔数组来记录每个字符是否出现过,然后遍历第二个字符串,如果发现有字符在布尔数组中已经标记为出现过,即可判断这两个字符串有相同元素。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#define MAX_LEN 100
bool hasCommonChar(char str1[], char str2[]) {
bool charSet[256] = {false}; // 布尔数组,记录每个字符是否出现过
int len1 = strlen(str1);
int len2 = strlen(str2);
int i;
// 遍历第一个字符串,标记每个字符是否出现过
for (i = 0; i < len1; i++) {
charSet[(int) str1[i]] = true;
}
// 遍历第二个字符串,如果发现有字符在布尔数组中已经标记为出现过,即可判断这两个字符串有相同元素
for (i = 0; i < len2; i++) {
if (charSet[(int) str2[i]]) {
return true;
}
}
return false; // 没有相同元素
}
int main() {
char str1[MAX_LEN], str2[MAX_LEN];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
if (hasCommonChar(str1, str2)) {
printf("这两个字符串有相同元素。\n");
} else {
printf("这两个字符串没有相同元素。\n");
}
return 0;
}
```
阅读全文