Open In App

Sentence Case of a given Camel cased string

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string str in camelCase format, the task is to convert the string into a readable form.
Examples: 
 

Input: str = “ILoveGeeksForGeeks” 
Output: I love geeks for geeks
Input: str = “WeLoveToCode” 
Output: We love to code 
 

 

Approach: The string is camelCased that means words are not separated by spaces instead every capital letter means a new word has begun. In order to improve its readability, we convert it into sentence case. Given below is the code for the conversion. We traverse through the string and then whenever we encounter a lowercase we print it as such. When we encounter an uppercase letter we output space followed by the uppercase character (after converting to lowercase) and then the rest of the characters.
Below is the implementation of the above approach: 
 

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the original string
// after converting it back from camelCase
void getOrgString(string s)
{
 
    // Print the first character as it is
    cout << s[0];
 
    // Traverse the rest of the
    // characters one by one
    int i = 1;
    while (i < s.length()) {
 
        // If current character is uppercase
        // print space followed by the
        // current character in lowercase
        if (s[i] >= 'A' && s[i] <= 'Z')
            cout << " " << (char)tolower(s[i]);
 
        // Else print the current character
        else
            cout << s[i];
        i++;
    }
}
 
// Driver code
int main()
{
    string s = "ILoveGeeksForGeeks";
 
    getOrgString(s);
 
    return 0;
}


Java




// Java implementation of the approach
class GFG
{
 
    // Function to return the original string
    // after converting it back from camelCase
    static void getOrgString(String s)
    {
     
        // Print the first character as it is
        System.out.print(s.charAt(0));
     
        // Traverse the rest of the
        // characters one by one
        int i = 1;
        while (i < s.length())
        {
     
            // If current character is uppercase
            // print space followed by the
            // current character in lowercase
            if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z')
                System.out.print(" "+ Character.toLowerCase(s.charAt(i)));
     
            // Else print the current character
            else
                System.out.print(s.charAt(i));
                 
            i++;
        }
    }
     
    // Driver code
    public static void main (String[] args)
    {
                String s = "ILoveGeeksForGeeks";
                getOrgString(s);
    }
}
 
// This code is contributed by AnkitRai01


Python




# Python3 implementation of the approach
 
# Function to return the original string
# after converting it back from camelCase
def getOrgString(s):
 
 
    # Print the first character as it is
    print(s[0],end="")
 
    # Traverse the rest of the
    # characters one by one
    i = 1
    while (i < len(s)):
 
        # If current character is uppercase
        # prspace followed by the
        # current character in lowercase
        if (ord(s[i]) >= ord('A') and ord(s[i] )<= ord('Z')):
            print(" ",s[i].lower(),end="")
 
        # Else print the current character
        else:
            print(s[i],end="")
        i+=1
 
# Driver code
 
s = "ILoveGeeksForGeeks"
 
getOrgString(s)
 
# This code is contributed by mohit kumar 29


C#




// C# implementation of the approach
using System;
     
class GFG
{
 
    // Function to return the original string
    // after converting it back from camelCase
    static void getOrgString(String s)
    {
     
        // Print the first character as it is
        Console.Write(s[0]);
     
        // Traverse the rest of the
        // characters one by one
        int i = 1;
        while (i < s.Length)
        {
     
            // If current character is uppercase
            // print space followed by the
            // current character in lowercase
            if (s[i] >= 'A' && s[i] <= 'Z')
                Console.Write(" "+ char.ToLower(s[i]));
     
            // Else print the current character
            else
                Console.Write(s[i]);
                 
            i++;
        }
    }
     
    // Driver code
    public static void Main (String[] args)
    {
                String s = "ILoveGeeksForGeeks";
                getOrgString(s);
    }
}
 
/* This code is contributed by PrinciRaj1992 */


Javascript




<script>
      // JavaScript implementation of the approach
      // Function to return the original string
      // after converting it back from camelCase
      function getOrgString(s)
      {
       
        // Print the first character as it is
        document.write(s[0]);
 
        // Traverse the rest of the
        // characters one by one
        var i = 1;
        while (i < s.length)
        {
         
          // If current character is uppercase
          // print space followed by the
          // current character in lowercase
          if (
            s[i].charCodeAt(0) >= "A".charCodeAt(0) &&
            s[i].charCodeAt(0) <= "Z".charCodeAt(0)
          )
            document.write("  " + s[i].toLowerCase());
             
          // Else print the current character
          else document.write(s[i]);
          i++;
        }
      }
 
      // Driver code
      var s = "ILoveGeeksForGeeks";
      getOrgString(s);
       
      // This code is contributed by rdtank.
    </script>


Output: 

I love geeks for geeks

 

Time Complexity: O(n)

Auxiliary Space: O(1)



Last Updated : 23 Aug, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads