Skip to content
Related Articles

Related Articles

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

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 01 Jun, 2022

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

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

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

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>

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

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.

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

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

GEEKSFOrgeeks

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

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


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!