C++判断某个字符数组内是否有某几个字母(不管前后顺序),若有,则计数变量加一,否则计数变量不变,不使用string类函数
时间: 2024-02-29 20:52:18 浏览: 55
你可以使用C++中的字符数组和循环来判断一个字符数组内是否包含某几个字母。具体实现如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
bool containsLetters(char arr[], int arrSize, char letters[], int lettersSize) {
int count = 0;
for (int i = 0; i < lettersSize; i++) {
bool found = false;
for (int j = 0; j < arrSize; j++) {
if (letters[i] == arr[j]) {
found = true; // 找到了该字母
arr[j] = ' '; // 将该字母替换为空格,防止重复计数
count++;
break;
}
}
if (!found) {
return false; // 如果字母集合中的某个字母在字符数组中没有找到,则返回false
}
}
return true;
}
int main() {
char arr[] = "Hello World";
char letters[] = "loW";
int arrSize = strlen(arr);
int lettersSize = strlen(letters);
if (containsLetters(arr, arrSize, letters, lettersSize)) {
cout << "The array contains all the letters in " << letters << endl;
} else {
cout << "The array does not contain all the letters in " << letters << endl;
}
return 0;
}
```
在上面的代码中,`containsLetters()`函数接收四个参数,分别为要判断的字符数组、字符数组的大小、要判断的字母集合以及字母集合的大小。函数使用两个嵌套的循环,逐个查找字母集合中的每个字母是否在字符数组中出现,如果出现,则将计数变量加一并将该字母替换为空格,以防止重复计数,最后返回true。如果字母集合中的某个字母在字符数组中没有找到,则返回false。在`main()`函数中,我们定义了一个字符数组和一个字母集合,并调用`containsLetters()`函数来判断字符数组是否包含字母集合中的所有字母。
阅读全文