Capitalize the first and last character of each word in a string
Given the string, the task is to capitalise the first and last character of each word in a string.
Examples:
Input: Beginner for Beginner Output: GeekS FoR GeekS Input: BeginnerforBeginner is best Output: BeginnerforgeekS 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 = "Beginner for Beginner" ; 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 = "Beginner for Beginner" ; 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 = "Beginner for Beginner" ; 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 = "Beginner for Beginner" ; 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 = "Beginner for Beginner" ; echo $str , "\n" ; echo FirstAndLast( $str ); // This code is contributed by ihritik ?> |
Javascript
<script> // JavaScript 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 var ch = str.split( '' ); for ( var i = 0; i < ch.length; i++) { // k stores index of first character // and i is going to store index of last // character. var k = i; while (i < ch.length && ch[i] != ' ' ) i++; // Check if the character is a small letter // If yes, then Capitalise ch[k] = String.fromCharCode(ch[k] >= 'a' && ch[k] <= 'z' ? (ch[k].charCodeAt(0) - 32) : ch[k].charCodeAt(0)); ch[i - 1] = String.fromCharCode(ch[i - 1] >= 'a' && ch[i - 1] <= 'z' ? (ch[i - 1].charCodeAt(0) - 32) : ch[i - 1].charCodeAt(0)); } return ch.join( '' ); } // Driver code var str = "Beginner for Beginner" ; document.write( str + "<br>" ); document.write( FirstAndLast(str)); </script> |
Output:
Beginner for Beginner GeekS FoR GeekS
Time Complexity: O(N) where N is the length of the original string
Auxiliary Space: O(N) where N is the length of the original string