2016-11-16 29 views
1

我正在编写一个程序,它有一个字符串,然后我通过字符串读取并将所有数字都放入数组中,然后使用向量,然后使用count我有在该阵列中计算相同的数字,然后在数字中打印星号。计算字符串中的相同数字并将它们打印为星号C++

我得到的错误是二进制表达式的无效操作数。

这是代码。

#include <iostream> 
#include <vector> 
#include <algorithm> 
#include<array> 
using namespace std; 

int main() { 

    vector<string> array; 
    string grades = "01211342111153332211111232454444"; 
    int newarray[31]; 
    for(int i = 0 ; i < grades.length(); i++){ 
     array.push_back(grades.substr(i,1)); 

    } 

    int zero = count(std::begin(array),std::end(array),0); 
    int one = count(std::begin(array),std::end(array),1); 
    int two = count(std::begin(array),std::end(array),2); 
    int three = count(std::begin(array),std::end(array),3); 
    int four = count(std::begin(array),std::end(array),4); 
    int five = count(std::begin(array),std::end(array),5); 
    // also used this way int zero = count(array.begin(),array.end(),0); but still getting error. 

    for(int i = 0 ; i < one ; i ++){ 
     cout << '1 - ' << '*' << ' '; 
    } 
    for(int j = 0 ; j < two ; j++){ 
     cout << '2 - ' << '*' << ' '; 
    } 


} 

学习C++所以希望人们对我容易一点。

回答

2

这里有很多问题。

首先,您将int zero = count(std::begin(array),std::end(array),0);中的字符串数字进行比较。你想比较字符串与字符串。

二,您正在尝试cout'1 - ''是用于字符,所以你应该使用"来代替。

最后,在cout中,您只需循环播放星号和空格,而不是"1 - "。然后冲洗整个东西在控制台上打印,使用cout<<"\n";cout<<std::endl;

你可以尝试以下方法:

int main() 
{ 
    vector<string> array; 
    string grades = "01211342111153332211111232454444"; 
    int newarray[31]; 
    for(int i = 0 ; i < grades.length(); i++){ 
     array.push_back(grades.substr(i,1)); 

    } 

    int zero = count(std::begin(array),std::end(array),"0"); 
    int one = count(std::begin(array),std::end(array),"1"); 
    int two = count(std::begin(array),std::end(array),"2"); 
    int three = count(std::begin(array),std::end(array),"3"); 
    int four = count(std::begin(array),std::end(array),"4"); 
    int five = count(std::begin(array),std::end(array),"5"); 


    cout << "1 - "; 
    for(int i = 0 ; i < one ; i ++){ 
     cout << '*' << ' '; 
    } 
    cout << "\n"; 

    cout << "2 - "; 
    for(int i = 0 ; i < two ; i ++){ 
     cout << '*' << ' '; 
    } 
    cout << "\n"; 

    /*....*/ 
} 
+0

谢谢!!!!! :D解释也很棒:D –

相关问题