Sums of ASCII values of each word in a sentence

22 Jun, 2022
We are given a sentence of English language(can also contain digits), we need to compute and print the sum of ASCII values of characters of each word in that sentence.Examples:  
Input :  GeeksforGeeks, a computer science portal for geeks
Output : Sentence representation as sum of ASCII each character in a word:
         1361 97 879 730 658 327 527 
         Total sum -> 4579
Here, [GeeksforGeeks, ] -> 1361, [a] -> 97, [computer] -> 879, [science] -> 730
      [portal] -> 658, [for] -> 327, [geeks] -> 527 

Input : I am a geek
Output : Sum of ASCII values:
         73 206 97 412 
         Total sum -> 788
 
Approach:  
Iterate over the length of the string and keep converting the characters to their ASCIIKeep adding up the values till the end of sentence.When we come across a space character, we store the sum calculated for that word and set the sum equal to zero again.Later, we print elements
Iterate over the length of the string and keep converting the characters to their ASCII
Keep adding up the values till the end of sentence.
When we come across a space character, we store the sum calculated for that word and set the sum equal to zero again.
Later, we print elements
 
C++
Java
Python 3
C#
Javascript
// C++ implementation for representing// each word in a sentence as sum of// ASCII values of each word#include <iostream>#include <string>#include <vector>using namespace std; // Function to compute the sum of ASCII values of each// word separated by a space and return the total sum// of the ASCII values, excluding the space.long long int ASCIIWordSum(string str,                          vector<long long int>& sumArr){     int l = str.length();    int sum = 0;    long long int bigSum = 0L;    for (int i = 0; i < l; i++) {         // Separate each word by        // a space and store values        // corresponding to each word        if (str[i] == ' ') {             bigSum += sum;            sumArr.push_back(sum);            sum = 0;        }        else             // Implicit type casting            sum +=  str[i];           }     // Storing the value of last word    sumArr.push_back(sum);    bigSum += sum;    return bigSum;}// Driver functionint main(){    string str = "GeeksforGeeks a computer science "                 "portal for Geeks";    vector<long long int> sumArr;     // Calling function    long long int sum = ASCIIWordSum(str, sumArr);     cout << "Sum of ASCII values:" << std::endl;    for (auto x : sumArr)        cout << x << " ";    cout << endl  << "Total sum -> " << sum;    return 0;}
// Java program for representing// each word in a sentence as sum of// ASCII values of each wordimport java.util.*;import java.lang.*; class Rextester {     // Function to compute the sum of ASCII values of    // each word separated by a space and return the    // total sum of the ASCII values, excluding the    // space.    static long ASCIIWordSum(String str, long sumArr[])    {        int l = str.length();        int pos = 0;        long sum = 0;        long bigSum = 0;        for (int i = 0; i < l; i++) {             // Separate each word by            // a space and store values            // corresponding to each word            if (str.charAt(i) == ' ') {                 bigSum += sum;                sumArr[pos++] = sum;                sum = 0;            }            else                 // Implicit type casting                sum += str.charAt(i);                   }         // Storing the sum of last word        sumArr[pos] = sum;        bigSum += sum;        return bigSum;    }     // Driver function    public static void main(String args[])    {         String str = "GeeksforGeeks, a computer science portal for geeks";         // Counting the number of words in the input sentence        int ctr = 0;        for (int i = 0; i < str.length(); i++)            if (str.charAt(i) == ' ')                ctr++;                 long sumArr[] = new long[ctr + 1];         // Calling function        long sum = ASCIIWordSum(str, sumArr);         // Printing equivalent sum of the words in the        // sentence        System.out.println("Sum of ASCII values:");        for (int i = 0; i <= ctr; i++)            System.out.print(sumArr[i] + " ");        System.out.println();        System.out.print("Total sum -> " + sum);    }}
# Python 3 implementation for representing# each word in a sentence as sum of# ASCII values of each word # Function to compute the sum of ASCII# values of each word separated by a space# and return the total sum of the ASCII# values, excluding the space.def ASCIIWordSum(str, sumArr):     l = len(str)    sum = 0    bigSum = 0    for i in range(l):         # Separate each word by a space        # and store values corresponding        # to each word        if (str[i] == ' '):             bigSum += sum            sumArr.append(sum)            sum = 0                 else:             # Implicit type casting            sum += ord(str[i])         # Storing the value of last word    sumArr.append(sum)    bigSum += sum    return bigSum # Driver Codeif __name__ == "__main__":         str = "GeeksforGeeks a computer science portal for Geeks"    sumArr = []     # Calling function    sum = ASCIIWordSum(str, sumArr)     print("Sum of ASCII values:" )    for x in sumArr:        print(x, end = " ")             print()    print("Total sum -> ", sum) # This code is contributed by ita_c
// C# program for representing each// word in a sentence as sum of// ASCII values of each wordusing System; class GFG {     // Function to compute the sum of ASCII    // values of each word separated by a    // space and return the total sum of    // the ASCII values, excluding the space.    static long ASCIIWordSum(String str, long []sumArr)    {        int l = str.Length;        int pos = 0;        long sum = 0;        long bigSum = 0;        for (int i = 0; i < l; i++) {             // Separate each word by            // a space and store values            // corresponding to each word            if (str[i] == ' ')            {                bigSum += sum;                sumArr[pos++] = sum;                sum = 0;            }            else                 // Implicit type casting                sum += str[i];                }         // Storing the sum of last word        sumArr[pos] = sum;        bigSum += sum;        return bigSum;    }     // Driver function    public static void Main()    {        String str = "GeeksforGeeks, a computer " +                     "science portal for geeks";         // Counting the number of words        // in the input sentence        int ctr = 0;        for (int i = 0; i < str.Length; i++)            if (str[i] == ' ')                ctr++;                 long []sumArr = new long[ctr + 1];         // Calling function        long sum = ASCIIWordSum(str, sumArr);         // Printing equivalent sum of        // the words in the sentence        Console.WriteLine("Sum of ASCII values:");        for (int i = 0; i <= ctr; i++)            Console.Write(sumArr[i] + " ");                     Console.WriteLine();        Console.Write("Total sum -> " + sum);    }} // This code is contributed by nitin mittal
<script> // Javascript program for representing// each word in a sentence as sum of// ASCII values of each word                 // Function to compute the sum of ASCII values of    // each word separated by a space and return the    // total sum of the ASCII values, excluding the    // space.    function ASCIIWordSum(str,sumArr)    {        let l = str.length;        let pos = 0;        let sum = 0;        let bigSum = 0;        for (let i = 0; i < l; i++) {               // Separate each word by            // a space and store values            // corresponding to each word            if (str[i] == ' ') {                   bigSum += sum;                sumArr[pos++] = sum;                sum = 0;            }            else                   // Implicit type casting                sum += str[i].charCodeAt(0);                   }           // Storing the sum of last word        sumArr[pos] = sum;        bigSum += sum;        return bigSum;    }         // Driver function         let str = "GeeksforGeeks, a computer    science portal for geeks";           // Counting the number of words        // in the input sentence        let ctr = 0;        for (let i = 0; i < str.length; i++)            if (str[i] == ' ')                ctr++;                   let sumArr = new Array(ctr + 1);           // Calling function        let sum = ASCIIWordSum(str, sumArr);           // Printing equivalent sum of the words in the        // sentence        document.write("Sum of ASCII values:<br>");        for (let i = 0; i <= ctr; i++)             document.write(sumArr[i] + " ");        document.write("<br>");        document.write("Total sum -> " + sum);              // This code is contributed by avanitrachhadiya2155     </script>
Output:  
Chapters
descriptions off, selected
captions settings, opens captions settings dialog
captions off, selected
English
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
Sum of ASCII values:
1317 97 879 730 658 327 495 
Total sum -> 4503
Time Complexity: O(N), as we are using a loop to traverse N times. Where N is the length of the string that is number of characters in the sentence.
Auxiliary Space: O(W), as we are using extra space for the sumArr. Where W is the number of words in the sentence.
https://youtu.be/B3dghSG2R
-Y 
nitin mittal
ukasp
avanitrachhadiya2155
rohitsingh07052
cpp-vector
Strings
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Different Methods to Reverse a String in C++
Python program to check if a string is palindrome or not
Check for Balanced Brackets in an expression (well-formedness) using Stack
KMP Algorithm for Pattern Searching
Longest Palindromic Substring | Set 1
Length of the longest substring without repeating characters
Top 50 String Coding Problems for Interviews
Check whether two strings are anagram of each other
Convert string to char array in C++
Reverse words in a given string