Skip to content
Related Articles

Related Articles

Capitalize the first and last character of each word in a string
  • Last Updated : 30 Apr, 2019

Given the string, the task is to capitalise the first and last character of each word in a string.

Examples:

Input: Geeks for geeks
Output: GeekS FoR GeekS

Input: Geeksforgeeks is best
Output: GeeksforgeekS IS BesT

Approach

  • Create a character array of the String
  • Run a loop from the first letter to the last letter.
  • Check if the character is the starting or end of the word
  • Check if the character is a small letter.
  • If yes, then Capitalise the character of the string.

Below is the implementation of the above approach.

C++




// CPP program to capitalise the first
// and last character of each word in a string.
#include<bits/stdc++.h>
using namespace std;
  
string FirstAndLast(string str)
{
  
    // Create an equivalent string
    // of the given string
    string ch = str;
    for (int i = 0; i < ch.length(); i++)
    {
  
        // k stores index of first character
        // and i is going to store index of last
        // character.
        int k = i;
        while (i < ch.length() && ch[i] != ' ')
            i++;
  
        // Check if the character is a small letter
        // If yes, then Capitalise
        ch[k] = (char)(ch[k] >= 'a' && ch[k] <= 'z'
                        ? ((int)ch[k] - 32)
                        : (int)ch[k]);
        ch[i - 1] = (char)(ch[i - 1] >= 'a' && ch[i - 1] <= 'z'
                            ? ((int)ch[i - 1] - 32)
                            : (int)ch[i - 1]);
    }
  
    return ch;
}
  
// Driver code
int main()
{
    string str = "Geeks for Geeks";
    cout << str << "\n";
    cout << FirstAndLast(str);
}
  
// This code is contributed by ihritik

Java




// Java program to capitalise the first
// and last character of each word in a string.
  
class GFG {
    static String FirstAndLast(String str)
    {
  
        // Create an equivalent char array
        // of given string
        char[] ch = str.toCharArray();
        for (int i = 0; i < ch.length; i++) {
  
            // k stores index of first character
            // and i is going to store index of last
            // character.
            int k = i;
            while (i < ch.length && ch[i] != ' ')
                i++;
  
            // Check if the character is a small letter
            // If yes, then Capitalise
            ch[k] = (char)(ch[k] >= 'a' && ch[k] <= 'z'
                               ? ((int)ch[k] - 32)
                               : (int)ch[k]);
            ch[i - 1] = (char)(ch[i - 1] >= 'a' && ch[i - 1] <= 'z'
                                   ? ((int)ch[i - 1] - 32)
                                   : (int)ch[i - 1]);
        }
  
        return new String(ch);
    }
  
    // Driver code
    public static void main(String args[])
    {
        String str = "Geeks for Geeks";
        System.out.println(str);
        System.out.println(FirstAndLast(str));
    }
}

Python3




# Python3 program to capitalise the first 
# and last character of each word in a string. 
def FirstAndLast(string) : 
      
    # Create an equivalent char array 
    # of given string 
    ch = list(string); 
      
    i = 0 ;
    while i < len(ch):
  
        # k stores index of first character 
        # and i is going to store index of last 
        # character. 
        k = i; 
          
        while (i < len(ch) and ch[i] != ' ') :
            i += 1
  
        # Check if the character is a small letter 
        # If yes, then Capitalise 
        if (ord(ch[k]) >= 97 and 
            ord(ch[k]) <= 122 ):
            ch[k] = chr(ord(ch[k]) - 32);
        else :
            ch[k] = ch[k]
              
        if (ord(ch[i - 1]) >= 90 and 
            ord(ch[i - 1]) <= 122 ):
            ch[i - 1] = chr(ord(ch[i - 1]) - 32);
        else :
            ch[i - 1] = ch[i - 1]
              
        i += 1
          
    return "" . join(ch); 
      
# Driver code 
if __name__ == "__main__" :
      
    string = "Geeks for Geeks"
      
    print(string); 
    print(FirstAndLast(string)); 
      
# This code is contributed by Ryuga

C#




// C# program to remove the first
// and last character of each word in a string.
using System;
  
class GFG 
{
    static String FirstAndLast(String str)
    {
  
        // Create an equivalent char array
        // of given string
        char[] ch = str.ToCharArray();
        for (int i = 0; i < ch.Length; i++)
        {
  
            // k stores index of first character
            // and i is going to store index of last
            // character.
            int k = i;
            while (i < ch.Length && ch[i] != ' ')
                i++;
  
            // Check if the character is a small letter
            // If yes, then Capitalise
            ch[k] = (char)(ch[k] >= 'a' && ch[k] <= 'z'
                            ? ((int)ch[k] - 32)
                            : (int)ch[k]);
            ch[i - 1] = (char)(ch[i - 1] >= 'a' && ch[i - 1] <= 'z'
                                ? ((int)ch[i - 1] - 32)
                                : (int)ch[i - 1]);
        }
  
        return new String(ch);
    }
  
    // Driver code
    public static void Main(String []args)
    {
        String str = "Geeks for Geeks";
        Console.WriteLine(str);
        Console.WriteLine(FirstAndLast(str));
    }
}
  
/* This code contributed by PrinciRaj1992 */

PHP




<?php
// PHP program to capitalise the first
// and last character of each word in a string.
  
function FirstAndLast($str)
{
  
    // Create an equivalent string
    // of the given string
    $ch = $str;
    for ($i = 0; $i < strlen($ch); $i++)
    {
  
        // $k stores index of first character
        // and $i is going to store index of last
        // character.
        $k = $i;
        while ($i < strlen($ch) && $ch[$i] != ' ')
            $i++;
  
        // Check if the character is a small letter
        // If yes, then Capitalise
        $ch[$k] = chr(($ch[$k] >= 'a' && $ch[$k] <= 'z'
                    ? (ord($ch[$k]) - 32) : (ord($ch[$k])));
        $ch[$i - 1] = chr(($ch[$i - 1] >= 'a' && $ch[$i - 1] <= 'z' )
                    ? (ord($ch[$i - 1]) - 32) : (ord($ch[$i - 1])));
    }
  
    return $ch;
}
  
// Driver code
  
$str = "Geeks for Geeks";
echo $str, "\n";
echo FirstAndLast($str);
  
// This code is contributed by ihritik
  
?>
Output:
Geeks for Geeks
GeekS FoR GeekS

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :