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 ?> |
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 = "Geeks for Geeks" ;
document.write( str + "<br>" );
document.write( FirstAndLast(str)); </script> |
Output:
Geeks for Geeks 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