2017-02-02 4 views
-3

Ich versuche, die Ausgabe zusammen hinzuzufügen. Also statt der Ausgabe 12 will ich, dass es 3 ist, aber ich habe keine Ahnung wie. Hilfe wird sehr geschätzt.Einfaches Kennwort Hashing-Programm C++

int returnVal(char x) 
{ 
return x - 96; 
} 


int main() { 
string s = "ab"; 

for (int i = 0; i < s.length(); i++) 
{ 
    cout << returnVal(s[i]);  
} 

return 0; 
} 
+2

den Rückgabewert zu einem laufenden Gesamt hinzufügen? – NathanOliver

+0

Das habe ich mir gedacht! Irgendwelche Vorschläge, wie man das macht? – Jeroen

+0

Erstellen Sie eine Variable vom richtigen Typ, zero it, und fügen Sie ihr dann in der for-Schleife 'returnVal (s [i])' hinzu. – NathanOliver

Antwort

1

Sie müssen den Gesamtwert zurückgeben.

[BEISPIEL]:

int returnVal(char x) 
{ 
    return x - 96; 
} 

int main() 
{ 
    string s = "ab"; 
    int totalValue = 0; 

    for (int i = 0; i < s.length(); i++) 
    { 
     totalValue += returnVal(s[i]);   
    } 
    cout << totalValue; 

    return 0; 
} 
3

Verwenden std::accumulate

int main() 
{ 
    std::string s = "ab"; 

    std::cout << std::accumulate(s.begin(), s.end(), 0, [](int i, char c) { 
      return i + returnVal(c); 
     }) << std::endl; 
} 

live example