Friday, March 5, 2010

Reverse the words in a given string

Program that reverses a given sentence or word.
For Ex: Calling the function with the name "My Name is Prashanth" will return you "yM emaN si htnahsarP"

public string ReverseSentence(string OrigSentence)
{
StringBuilder reversedString = new StringBuilder();
char[] chars = OrigSentence.ToCharArray();
string word = string.Empty;

int wordstart , wordend , start , end ;

wordstart = wordend = start = end = 0;

end = OrigSentence.Length;

if (end > 0)
{
wordstart = start;
while (start < end)
{
if (chars[start] != ' ')
{
word += chars[start];
start++;
}
else
{
//wordend = start - 1;
reversedString.Append(ReverseWord(word));
word = string.Empty;

while (start < end && chars[start] == ' ')
{
reversedString.Append(chars[start]);
start++;
}
}
}

if (word.Length > 0)
{
reversedString.Append(ReverseWord(word));
}
}

return reversedString.ToString();
}

private string ReverseWord(string actualWord)
{
int start = 0;
int end = actualWord.Length-1;
char[] chars = actualWord.ToCharArray();
char tempchar;

while (start < end)
{
tempchar = chars[start];
chars[start] = chars[end];
chars[end] = tempchar;
start++;
end--;
}

string reveresedWord = new string(chars);

return reveresedWord;
}

No comments:

Post a Comment