How to create half of the string in uppercase and the other half in lowercase?

Last Updated : 23 Jul, 2025

The first thing that we have to keep in my mind while solving this kind of problem is that the strings are immutable i.e,

If I am taking the following string

var string1 = "geeksforgeeks";
string1[0] = "G";
console.log(string1);

As strings are immutable, so we cannot change the character of the string, so the output of the above code will be the following.

Output:

geeksforgeeks

Approach:

There are several ways to solve this problem. Some of them are as follows.

  • Splitting the string into 2 different parts and changing the first part to the UPPERCASE and concatenating the new strings to get the output.
  • Create an empty string and add each character of the string to it using FOR loop.
  • Using the slicing property of strings to get the output.

Method 1: This method is implemented using 2 new variables.

  • Add the string into the variable.
  • Store the length of the string into a variable using string.length function.
  • Create two empty strings which are used in the future to store the newly created strings.
  • Use of for loops to traverse in the string.
  • Convert the first string to the upper case using toUpperCase().
  • Concatenate both of the strings to get the output.
C++
#include <iostream>
using namespace std;

int main() {
  string str = "geeksforgeeks",ans;
  int len = str.length();
  
  for(int i = 0;i<len;i++){
    if(i<=len/2){
      char a = toupper(str[i]);
      ans.push_back(a);
    }else
      ans.push_back(str[i]);
    
  }
  cout<<ans;
  return 0;
}

// This code is co ntributed by rohitsingh07052
Java
public class GFG {
    public static void main(String[] args) {
        // Input string
        String str = "geeksforgeeks";
        
        // StringBuilder to store the result
        StringBuilder ans = new StringBuilder();
        
        // Get the length of the input string
        int len = str.length();

        // Loop through each character in the input string
        for (int i = 0; i < len; i++) {
            // Check if the current character is in the first half of the string
            if (i <= len / 2) {
                // Convert the character to uppercase and append it to the result
                char a = Character.toUpperCase(str.charAt(i));
                ans.append(a);
            } else {
                // If the character is in the second half, just append it as is
                ans.append(str.charAt(i));
            }
        }
        
        // Print the final result
        System.out.println(ans);
    }
}
Python3
import math

string1 = 'geeksforgeeks'
string1_len = len(string1)
part_a = ''
part_b = ''

for i in range(int(math.ceil(string1_len // 2 + 1))):
    part_a += string1[i]

for i in range(int(math.ceil(string1_len // 2)) + 1, 
               string1_len):
    part_b += string1[i]

new_part_a = part_a.upper()

changed_string = new_part_a + part_b

print(changed_string)

# This code is contributed by ukasp
C#
using System;

public class GFG
{
    public static void Main(string[] args)
    {
        // Input string
        string str = "geeksforgeeks";

        // String builder to store the result
        System.Text.StringBuilder ans = new System.Text.StringBuilder();

        // Get the length of the input string
        int len = str.Length;

        // Loop through each character in the input string
        for (int i = 0; i < len; i++)
        {
            // Check if the current character is in the first half of the string
            if (i <= len / 2)
            {
                // Convert the character to uppercase and append it to the result
                char a = char.ToUpper(str[i]);
                ans.Append(a);
            }
            else
            {
                // If the character is in the second half, just append it as is
                ans.Append(str[i]);
            }
        }

        // Print the final result
        Console.WriteLine(ans);
    }
}
JavaScript
<script>
var string1 = 'geeksforgeeks';
var string1_len = string1.length;
var part_a = '';
var part_b = '';

for(var i=0 ; i<Math.ceil(string1_len/2) ; i++)
{
    part_a+=string1[i];
}

for(var i=Math.ceil(string1_len/2) ; i<string1_len ; i++)
{
    part_b+=string1[i];
}

var new_part_a = part_a.toUpperCase();

var changed_string = new_part_a + part_b;

console.log(changed_string);
</script>

Output
GEEKSFOrgeeks

Time Complexity: O(N)
Auxiliary Space: O(1)

Method 2: This method is implemented using a single new variable.

  • Add the string into the variable.
  • Store the length of the string into a variable using string.length function.
  • Create an empty string that is used in the future to store the newly created string.
  • Use of for loops to traverse the string.
  • Log the final string to get the output.
C++
#include <iostream>
using namespace std;

string convertFun(string& s1, int n)
{
    string ans = "";

    // Running loop on first half and making it
    // upper case
    for (int i = 0; i < n / 2; i++) {
        ans += toupper(s1[i]);
    }

    // Running loop on secone half
    for (int i = n / 2; i < n; i++) {
        ans += s1[i];
    }

    return ans;
}

// Driver code
int main()
{
    string s1 = "geeksforgeeks";
    // Finding length of string
    int n = s1.size();

    cout << convertFun(s1, n);

    return 0;
}

// This code is added by Arpit Jain
Java
public class StringConversion {
    // Function to convert the first half of the string to
    // uppercase
    static String convertFun(String s1, int n)
    {
        StringBuilder ans = new StringBuilder();

        // Running loop on the first half and making it
        // uppercase
        for (int i = 0; i < n / 2; i++) {
            ans.append(Character.toUpperCase(s1.charAt(i)));
        }

        // Running loop on the second half
        for (int i = n / 2; i < n; i++) {
            ans.append(s1.charAt(i));
        }

        return ans.toString();
    }

    // Driver code
    public static void main(String[] args)
    {
        String s1 = "geeksforgeeks";
        // Finding the length of the string
        int n = s1.length();

        System.out.println(convertFun(s1, n));
    }
}
Python3
import math

string1 = 'gfg';
string1_len = len(string1)

changed_string = ''

for i in range(math.ceil(string1_len/2)):
    changed_string += string1[i].upper();

for i in range(math.ceil(string1_len/2), string1_len):
    changed_string += string1[i]

print(changed_string)

# This code is contributed by avanitrachhadiya2155
C#
using System;

class Program
{
    // Function to convert the first half of the string to uppercase
    static string ConvertFun(string s1, int n)
    {
        string ans = "";

        // Running loop on the first half and making it upper case
        for (int i = 0; i < n / 2; i++)
        {
            ans += char.ToUpper(s1[i]);
        }

        // Running loop on the second half
        for (int i = n / 2; i < n; i++)
        {
            ans += s1[i];
        }

        return ans;
    }

    // Driver code
    static void Main()
    {
        string s1 = "geeksforgeeks";
        // Finding the length of the string
        int n = s1.Length;

        Console.WriteLine(ConvertFun(s1, n));

        // This code is added by Arpit Jain
    }
}

// This code is contributed by shivamgupta310570
JavaScript
<script>
var string1 = 'gfg';
var string1_len = string1.length;
var changed_string = '';

for(var i=0 ; i<Math.ceil(string1_len/2) ; i++)
{
    changed_string+=string1[i].toUpperCase();
}

for(var i=Math.ceil(string1_len/2) ; i<string1_len ; i++)
{
    changed_string+=string1[i];
}

console.log(changed_string);
</script>

Output
GEEKSForgeeks

Time Complexity: O(N)
Auxiliary Space: O(1)

Method 3: This method is implemented using the JavaScript Slice property.

  • Add the string into the variable.
  • Store the length of the string into a variable using string.length function.
  • Store the ceil value of half of the length of the string to the new variable.
  • Create 2 empty strings which are used in the future to store the newly created strings.
  • Add string to the variables using string slicing property.
  • Convert the first string to the upper case using toUpperCase().
  • Concatenate both of the strings to get the output.
C++
#include <cmath>
#include <iostream>

int main()
{
    // Given string
    std::string string1 = "geeks for geeks";

    // Calculate the length of the string
    int string1Len = string1.length();

    // Calculate the index to split the string into two
    // halves
    int halfString
        = static_cast<int>(std::ceil(string1Len / 2.0));

    // Declare variables to store the two parts of the
    // string
    std::string partA;
    std::string partB;

    // Extract the first half of the string
    partA = string1.substr(0, halfString);

    // Convert the first half to uppercase
    for (char& ch : partA) {
        ch = std::toupper(ch);
    }

    // Extract the second half of the string
    partB = string1.substr(halfString, string1Len);

    // Concatenate the modified first half and the second
    // half
    std::string changedString = partA + partB;

    // Print the modified string
    std::cout << changedString << std::endl;

    return 0;
}
Java
public class Main {
    public static void main(String[] args) {
        // Given string
        String string1 = "geeks for geeks";

        // Calculate the length of the string
        int string1Len = string1.length();

        // Calculate the index to split the string into two halves
        int halfString = (int) Math.ceil(string1Len / 2.0);

        // Declare variables to store the two parts of the string
        String partA;
        String partB;

        // Extract the first half of the string
        partA = string1.substring(0, halfString);

        // Convert the first half to uppercase
        String newPartA = partA.toUpperCase();

        // Extract the second half of the string
        partB = string1.substring(halfString, string1Len);

        // Concatenate the modified first half and the second half
        String changedString = newPartA + partB;

        // Print the modified string
        System.out.println(changedString);
    }
}
Python3
import math

string1 = 'geeksforgeeks'

string1_len = len(string1)

half_string = math.ceil(string1_len/2)

part_a = ''
part_b = ''

part_a = string1[:half_string]
new_part_a = part_a.upper()

part_b = string1[half_string:string1_len]

changed_string = new_part_a+part_b

print(changed_string)

# This code is contributed by rag2127
C#
using System;

class Program
{
    static void Main()
    {
        // Given string
        string string1 = "geeks for geeks";

        // Calculate the length of the string
        int string1Len = string1.Length;

        // Calculate the index to split the string into two halves
        int halfString = (int)Math.Ceiling(string1Len / 2.0);

        // Extract the first half of the string
        string partA = string1.Substring(0, halfString);

        // Convert the first half to uppercase
        partA = partA.ToUpper();

        // Extract the second half of the string
        string partB = string1.Substring(halfString, string1Len - halfString);

        // Concatenate the modified first half and the second half
        string changedString = partA + partB;

        // Print the modified string
        Console.WriteLine(changedString);
    }
}
JavaScript
<script>
var string1 = 'geeks for geeks';
var string1_len = string1.length;
var half_string = Math.ceil(string1_len/2);
var part_a;
var part_b;

part_a = string1.slice(0,half_string);
var new_part_a = part_a.toUpperCase();
part_b = string1.slice(half_string,string1_len);

var changed_string = new_part_a+part_b;

console.log(changed_string);
</script>

Output
GEEKS FOr geeks

Time Complexity: O(N)
Auxiliary Space: O(N)

In these ways, you can solve these kinds of problems.

Comment