#include <iostream>
#include <stdlib.h>
#include<string.h>
using namespace std;
int main( )
{
char string[ 128 ] = "This is a test you know!" ,tempstring[ 128 ] ;
char temp, smallchar;
int c = 0 , count[ 128 ] = { 0 } ;
int n, i, j, k, l= 0 ;
printf ( "Original String: %s\n " ,string) ;
n = strlen ( string) ;
for ( j= 1 ; j< n; j++ )
{
for ( i= 0 ; i< n- 1 ; i++ )
{
if ( string[ i] < string[ j] )
{
temp = string[ i] ;
string[ i] = string[ j] ;
string[ j] = temp;
}
}
}
printf ( "\n Highest Number: %c\n " , string[ 0 ] ) ;
for ( k= n- 1 ; k>= 0 ; k-- ) {
if ( l== 0 ) {
if ( string[ k] ! = ' ' ) {
smallchar= string[ k] ;
l++ ;
}
}
}
//Ikkada string in trim chey
printf ( "Lowest Char: %c" , smallchar) ;
printf ( "\n Descending Ordered String: %s\n " , string) ;
for ( i= 0 ; i< n- 1 ; i++ )
{
if ( string[ i] ! = ' ' ) {
for ( j= i+ 1 ; j< n; j++ )
{
if ( string[ i] > string[ j] )
{
temp = string[ i] ;
string[ i] = string[ j] ;
string[ j] = temp;
tempstring[ j] = temp;
}
}
}
}
printf ( "\n Ascending Ordered String:%s\n " , string) ;
printf ( "\n Temp String:%s\n " , tempstring) ;
while ( string[ c] ! = '\0 ' )
{
/* Considering characters from 'a' to 'z' only */
//printf("String: %c\n",string[c]);
if ( string[ c] >= '!' && string[ c] <= 'z' ) {
count[ string[ c] - '!' ] ++ ;
// printf("String count: %c\n",string[c]-'a');
}
c++ ;
}
for ( c = 0 ; c < 128 ; c++ )
{
if ( count[ c] > 1 )
printf ( "%c occurs %d times in the entered string.\n " ,c+ '!' ,count[ c] ) ;
}
printf ( "\n " ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlPHN0cmluZy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICBjaGFyIHN0cmluZ1sxMjhdPSJUaGlzIGlzIGEgdGVzdCB5b3Uga25vdyEiLHRlbXBzdHJpbmdbMTI4XTsKICAgY2hhciB0ZW1wLCBzbWFsbGNoYXI7CiAgIGludCBjID0gMCwgY291bnRbMTI4XSA9IHswfTsKICAgIGludCBuLCBpLCBqLCBrLCBsPTA7CgpwcmludGYoIk9yaWdpbmFsIFN0cmluZzogJXNcbiAiLHN0cmluZyk7CgogICAgbiA9IHN0cmxlbihzdHJpbmcpOwoKICAgIAogICAgZm9yIChqPTE7IGo8bjsgaisrKQogICAgewogICAgCgkJZm9yIChpPTA7IGk8bi0xOyBpKyspCgkJewoJCQkKCQkJCWlmIChzdHJpbmdbaV0gPCBzdHJpbmdbal0pCgkJCQl7CgkJCQkJCgkJCQkKCQkJCQkKCQkJCQl0ZW1wID0gc3RyaW5nW2ldOwoJCQkJCXN0cmluZ1tpXSA9IHN0cmluZ1tqXTsKCQkJCQlzdHJpbmdbal0gPSB0ZW1wOwoJCQkJfQoJCQkJCgkJfQoJCQogICAgfQogICAgCQlwcmludGYoIlxuIEhpZ2hlc3QgTnVtYmVyOiAlY1xuIiwgc3RyaW5nWzBdKTsKCQoJCgkgZm9yKGs9bi0xO2s+PTA7ay0tKXsKICAgIAlpZihsPT0wKXsKICAgIAlpZihzdHJpbmdba10hPScgJyl7CiAgICAJCQogICAgCQlzbWFsbGNoYXI9c3RyaW5nW2tdOwogICAgCQlsKys7CiAgICAJCQogICAgfQogICAgCX0KCQkJIH0KICAgIAovL0lra2FkYSBzdHJpbmcgaW4gdHJpbSBjaGV5CgogICAgcHJpbnRmKCJMb3dlc3QgQ2hhcjogJWMiLCBzbWFsbGNoYXIpOwogICAgCiAgICBwcmludGYoIlxuRGVzY2VuZGluZyBPcmRlcmVkIFN0cmluZzogICVzXG4iLCBzdHJpbmcpOwogICAgICBmb3IgKGk9MDsgaTxuLTE7IGkrKykKICAgIHsKICAgIAlpZihzdHJpbmdbaV0hPScgJyl7CiAgICAgICAgZm9yIChqPWkrMTsgajxuOyBqKyspCiAgICAgICAgewogICAgICAgIAkKICAgICAgICAJCiAgICAgICAgICAgIGlmIChzdHJpbmdbaV0gPiBzdHJpbmdbal0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRlbXAgPSBzdHJpbmdbaV07CiAgICAgICAgICAgICAgICBzdHJpbmdbaV0gPSBzdHJpbmdbal07CiAgICAgICAgICAgICAgICBzdHJpbmdbal0gPSB0ZW1wOwogICAgICAgICAgICAgICAgdGVtcHN0cmluZ1tqXT10ZW1wOwogICAgICAgICAgICB9CiAgICAgICAgCX0KICAgICAgICB9CiAgICB9CiAgICAKICAgICAgcHJpbnRmKCJcbkFzY2VuZGluZyBPcmRlcmVkIFN0cmluZzolc1xuIiwgc3RyaW5nKTsKICAgICAgcHJpbnRmKCJcblRlbXAgU3RyaW5nOiVzXG4iLCB0ZW1wc3RyaW5nKTsKICAgIAogICAgCiAgIHdoaWxlICggc3RyaW5nW2NdICE9ICdcMCcgKQogICB7CiAgICAgIC8qIENvbnNpZGVyaW5nIGNoYXJhY3RlcnMgZnJvbSAnYScgdG8gJ3onIG9ubHkgKi8KIAogCS8vcHJpbnRmKCJTdHJpbmc6ICVjXG4iLHN0cmluZ1tjXSk7CiAKIAogICAgICBpZiAoIHN0cmluZ1tjXSA+PSAnIScgJiYgc3RyaW5nW2NdIDw9ICd6JyApIHsKICAgICAgICAgY291bnRbc3RyaW5nW2NdLSchJ10rKzsKICAgICAvLyBwcmludGYoIlN0cmluZyBjb3VudDogJWNcbiIsc3RyaW5nW2NdLSdhJyk7CiAgICAgIH0KICAgICAgYysrOwogICB9CiAKICAgZm9yICggYyA9IDAgOyBjIDwgMTI4IDsgYysrICkKICAgewogICAgICBpZiggY291bnRbY10gPiAxICkKICAgICAgICAgcHJpbnRmKCIlYyBvY2N1cnMgJWQgdGltZXMgaW4gdGhlIGVudGVyZWQgc3RyaW5nLlxuIixjKychJyxjb3VudFtjXSk7CiAgIH0KICAgIAogICAgCiAgICBwcmludGYoIlxuIik7CiAgICByZXR1cm4gMDsKfQoK