Difference between revisions of "Interview Preparation Strings"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Created page with "== Reverse a string == <syntaxhighlight lang="c"> void reverse_str(char *s) { const int len = strlen(s); const int mid = len / 2; for (int i = 0, j=len-1; i < mid;...")
 
(Reverse words in a string)
Line 15: Line 15:
 
<BR/>
 
<BR/>
 
== Reverse words in a string ==
 
== Reverse words in a string ==
TODO
+
If string to be reversed is "where there is a will there is a way"
 +
Output needed : "way a is there will a is there where"
 +
 
 +
To reverse the words in a string , we will follow below steps:
 +
1)First, we will reverse each word in the string as "erehw ereht si a lliw ereht si a yaw"
 +
2) Second , we will reverse this string by letter to get the desired output.
 +
 
 +
We are going to use previous reverse_str function with one more parameter length as below:
 +
 
 +
void reverse_str(char *s ,int len)
 +
{
 +
        int i,j;
 +
char temp;
 +
j= len - 1;
 +
int mid = len1/2;
 +
for(i=0;i<mid;i++,j--)
 +
{
 +
temp = s[i];
 +
s[i] = s[j];
 +
s[j] = temp;
 +
 
 +
}
 +
}
 +
 
 +
void reverse_words_in_string(char *s)
 +
{
 +
int i=0;
 +
int j=0;
 +
/*
 +
* 1st step
 +
* In below while loop , string becomes "erehw ereht si a lliw ereht si a yaw"
 +
*/
 +
while(*str)
 +
{
 +
if( *(str+j) == ' ' || *(str+j) == '\0')
 +
{
 +
reverse( str+i, j-i );
 +
i = j+1;
 +
}
 +
if( *(str+j) == '\0')
 +
{
 +
break;
 +
}
 +
j++;
 +
}
 +
/*
 +
* 2nd Step
 +
*/
 +
reverse(str,strlen(str));
 +
}
 +
 
  
 
<BR/>
 
<BR/>
 +
 
== Find the last word in a string ==
 
== Find the last word in a string ==
 
TODO
 
TODO

Revision as of 21:16, 24 November 2016

Reverse a string

void reverse_str(char *s)
{
    const int len = strlen(s);
    const int mid = len / 2;
    for (int i = 0, j=len-1; i < mid; i++, j--) {
        char c = s[i];
        s[i]   = s[j];
        s[j]   = c;
    }
}


Reverse words in a string

If string to be reversed is "where there is a will there is a way" Output needed : "way a is there will a is there where"

To reverse the words in a string , we will follow below steps: 1)First, we will reverse each word in the string as "erehw ereht si a lliw ereht si a yaw" 2) Second , we will reverse this string by letter to get the desired output.

We are going to use previous reverse_str function with one more parameter length as below:

void reverse_str(char *s ,int len) {

       int i,j;

char temp; j= len - 1; int mid = len1/2; for(i=0;i<mid;i++,j--) { temp = s[i]; s[i] = s[j]; s[j] = temp;

} }

void reverse_words_in_string(char *s) { int i=0; int j=0; /* * 1st step * In below while loop , string becomes "erehw ereht si a lliw ereht si a yaw" */ while(*str) { if( *(str+j) == ' ' || *(str+j) == '\0') { reverse( str+i, j-i ); i = j+1; } if( *(str+j) == '\0') { break; } j++; } /* * 2nd Step */ reverse(str,strlen(str)); }



Find the last word in a string

TODO


TODO : More string questions