Write a C# program to reverse a string.


動機:
對於給你一個字串,
再要求你寫個function去reverse它,
要如何寫呢?!

說明:
利用 Microsoft Visual C# 2008 Express 免費軟體,
再撰寫相關的程式即可達到要求, 程式碼如下:
(若重點是要求 algorithm 及 performance 的話,
可能程式碼就要另外思考如何改變了)


using System;
// using System.Collections.Generic;
// using System.Linq;
// using System.Text;

namespace ConsoleApplicationReverseAString
{
    class Program
    {
        static char[] str = new char[] {'I',' ','a','m',' ','a',' ','g','o','o','d',' ','b','o','y'};

        private static void Reverse(int pos)
        {
            if (pos < (str.Length / 2))
            {
                char ch;

                // Swap str[pos] and str[str.Length - pos - 1]
                ch = str[pos];
                str[pos] = str[str.Length - pos - 1];
                str[str.Length - pos - 1] = ch;

                // Now recurse!
                Reverse(pos + 1);
            }
        }

        private static void ListString() 
        {
            for (int i = 0; i < str.Length; i++) {
                Console.Write(str[i]);
            }
        }

        public static void Pause() {
            Console.Write("Press any key to continue . . .");
            Console.ReadKey(true);
        }

        static void Main(string[] args)
        {
            Console.Write("Original string : ");

            // List original string
            ListString();

            // Call the recursion function
            Reverse(0);

            // List new line
            Console.WriteLine();

            Console.Write("Reversed string : ");

            // List reversed string
            ListString();

            // List new line
            Console.WriteLine("\n");

            // Pause
            Pause();
        }
    }
}


參攷: Write a C program to reverse a string.

執行檔下載連結: https://docs.google.com/leaf?id=0B_4eUrknq7N1YjJiMDUxMTctN2IxNS00MTY1LTgyZjItNzJkNTUzYTMxNzdm&hl=zh_TW

留言