Click here to Skip to main content
Click here to Skip to main content

How to reverse a string sentence (only words, not characters) without using the C# "string built-in" functions

, 5 Jan 2013 CPOL
Rate this:
Please Sign up or sign in to vote.
Reverse of a string sentence


This article represents one of few ways of reversal of string sentence (only words, without using any inbuilt c# functions except String.Length property as author feels lazy to write code for it.)


Knowledge of control structures (for, foreach, while) and data types (char, string).

Using the code

There are mainly three functions created :

  1. ReverseString( String ): returns reversed string, e.g., ReverseString("Hello How are you").
  2. Split( String ): returns a string array containing words and spaces at consecutive places.
  3. ReturnSpace( int ): accepts an integer representing number of spaces, creates and return a string containing specified number of spaces.
/**Reverse a Sentence without using C# inbuilt functions
 (except String.Length property, m not going to write code for this small functionality )*/
const char EMPTYCHAR = ' ';
const string EMPTYSTRING = " ";

/// <summary>
/// Reverse a string Sentence
/// </summary>
/// <param name="pStr"></param>
/// <returns></returns>
public string ReverseString(string pStr)
  if (pStr.Length > 1) //can be checked/restricted via validation
    string strReversed = String.Empty;
    string[] strSplitted = new String[pStr.Length];
    int i;

    strSplitted = Split(pStr); // Complexity till here O(n)

    for (i = strSplitted.Length - 1; i >= 0; i--)
    // this for loop add O(length of string) in O(n) which is similar to O(n)
        strReversed += strSplitted[i];

    return strReversed;
  return pStr;

/// <summary>
/// Split the string into words & empty spaces
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string[] Split(string str)
    string strTemp = string.Empty;
    string[] strArryWithValues = new String[str.Length];
    int j = 0;
    int countSpace = 0;

    //Complexity of for conditions result to O(n)
    foreach (char ch in str)
        if (!ch.Equals(EMPTYCHAR))
            strTemp += ch; //append characters to strTemp

            if (countSpace > 0)
                strArryWithValues[j] = ReturnSpace(countSpace); // Insert String with Spaces
                countSpace = 0;

            if (countSpace == 1)
                strArryWithValues[j] = strTemp; // Insert String with Words
                strTemp = String.Empty;

    strArryWithValues[j] = strTemp;
    return (strArryWithValues);

/// <summary>
/// Return a string with number of spaces(passed as argument)
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
public string ReturnSpace(int count)
    string strSpaces = String.Empty;

    while (count > 0)
        strSpaces += EMPTYSTRING;

    return strSpaces;


/************Reverse Sentence Ends***************/

Similar post

Points of Interest

Maintaining complexity to O(n) where n is length of string.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer
United States United States
Learning & Earning.

Comments and Discussions

SuggestionAnother suggestion PinmemberMalte Klena9-Jan-13 8:08 
SuggestionHow about this... PinmemberAndreas Gieriet5-Jan-13 13:11 
QuestionRepeat Pinmemberjfriedman4-Jan-13 5:15 
AnswerRe: Repeat PinmemberPIEBALDconsult4-Jan-13 5:35 
GeneralRe: Repeat Pinmemberjfriedman4-Jan-13 6:21 
GeneralRe: Repeat PinmemberPIEBALDconsult4-Jan-13 11:51 
GeneralRe: Repeat PinmemberVeeQuest5-Jan-13 10:24 
SuggestionUse StringBuilders PinmemberJohn Brett2-Jan-13 23:06 
GeneralRe: Use StringBuilders Pinmemberadriancs3-Jan-13 8:46 
GeneralThoughts PinmemberPIEBALDconsult2-Jan-13 17:38 
QuestionGood one Pinmembermaq_rohit2-Jan-13 15:53 
AnswerRe: Good one PinmemberVeeQuest5-Jan-13 10:26 
Thumbs Up | :thumbsup:
GeneralRe: Good one Pinmembermaq_rohit9-Jan-13 20:28 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150327.1 | Last Updated 5 Jan 2013
Article Copyright 2013 by VeeQuest
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid