using System;
using System.Collections.Generic;
namespace ReverWords
{
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine(ReverseWords("Hello World"));
Console.Read();
}
public static string ReverseWords(string array)
{
if (string.IsNullOrEmpty(array))
{
throw new ArgumentException("");
}
int arrLen = array.Length;
char[] strNew = new char[arrLen + 1];
//全部反轉
for (int index = 0; index < arrLen; index++)
{
strNew[index] = array[arrLen - 1 - index];
}
strNew[arrLen] = ' '; //為了複原最後一個單詞,添加一個輔助空格
int iStart = 0, iEnd = 0;
char tmpChar;+
//複原單詞
for (int Index = 0; Index < arrLen + 1; Index++)
{
//Index指向空格
if (strNew[Index] == ' ')
{
iEnd = Index - 1;
while (iStart < iEnd)
{
tmpChar = strNew[iStart];
strNew[iStart] = strNew[iEnd];
strNew[iEnd] = tmpChar;
iStart++;
iEnd--;
}
iStart = Index + 1;//跳過空格
}
else if (strNew[Index] == '!' | strNew[Index] == ',' | strNew[Index] == '.' | strNew[Index] == ';')
{
iStart = Index + 1;//跳過標點
}
}
//合成字串
array = string.Empty;
for (int index = 0; index < strNew.Length - 1; index++)//去掉輔助的空格
{
array += strNew[index];
}
return array;
}
}
}