统计一行文字中某一字母出现的次数和位置,区分大小写。要求将该功能包装成一个函数,在主函数中完成输入输出。建议使用vector存储位置,实现多组输入
时间: 2024-05-07 20:19:33 浏览: 75
以下是C++的代码实现:
```cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<int> countChar(string str, char c) {
vector<int> positions;
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str[i] == c) {
count++;
positions.push_back(i);
}
}
cout << "Character '" << c << "' appears " << count << " times at positions: ";
for (int i = 0; i < positions.size(); i++) {
cout << positions[i] << " ";
}
cout << endl;
return positions;
}
int main() {
int n;
cin >> n;
cin.ignore(); // 忽略第一行的回车
while (n--) {
string str;
getline(cin, str); // 输入一行文字
char c;
cin >> c; // 输入要查找的字母
countChar(str, c);
}
return 0;
}
```
其中,countChar函数接受两个参数,一个是要统计的字符串,一个是要查找的字符。函数返回一个存储该字符出现位置的vector。
在主函数中,首先输入测试数据组数n,然后循环n次,每次输入一行文字和一个要查找的字母,调用countChar函数进行统计。注意,在输入一行文字后,要使用cin.ignore()忽略第一行的回车符。
阅读全文