计算字母" a"在数组中

时间:2017-11-26 12:32:31

标签: c++ arrays count

我的任务是计算很多" a"数组中的字母

所以这是我的代码

#include <iostream>

#include <vector>
#include <algorithm>
using namespace std;
int main(){
    int i;
    int ch[10];
    cout<<"enter 10 letters"<<endl;
    for(i=0;i<10;i++){
        cin>>ch[i];
    }
    cout<<endl;cout<<endl;
    cout<<"this is the letter you entered"<<endl;
    cout<<endl;
    for(i=0;i<10;i++){
        cout<<(ch[i])<<endl;
    }
    vector<int> a = ch[10];
    int cnt;
    cnt = count(a.begin(), a.end(), "a");
    cout<<"many a's are = "<<cnt<<endl;

}

但它给了我错误 [错误]转换为&#39; int&#39;到非标量类型&#st; :: vector&#39;请求的

请帮帮我, 从https://www.tutorialspoint.com/cpp_standard_library/cpp_algorithm_count.htm

引用我的代码

1 个答案:

答案 0 :(得分:2)

对于初学者,数组ch应该声明为

char ch[10];
^^^^

如果您打算输入字母作为输入。

本声明

vector<int> a = ch[10];

没有意义。向量的初始值设定项是数组ch中不存在的元素。此外,类模板std::vector没有非显式构造函数,可将类型为int的对象转换为类型std::vector<int>

在本声明中

cnt = count(a.begin(), a.end(), "a");

您正在尝试计算类型为"a"的对象中遇到类型为const char[2]的字符串文字std::vector<int>的次数。

无需声明用于计算字母'a'出现次数的向量。你可以写

#include <iterator>

//...

char ch[10];

//...

auto cnt = std::count( std::begin( ch ), std::end( ch ), 'a' );